Так у меня есть метод в моей службы, которые я буду называть из контроллера:Шаблон MVC-репозитория с сервисами - как получить ошибки в DAL?
public void SendMessage(Message message) {
message.Property = "Random";
try {
// try some insert logic
}
catch (Exception) {
// if it fails undo some stuff
// return the errors
throw;
}
// if there are no errors on the return the operation was a success
// but how do I get the Service generated data?
}
Edit:
Так что вопрос на самом деле не о том, чтобы мой код, чтобы работать, это проблема у меня есть с Repository Pattern в то время как с помощью Service Layer как «идти между» для общения между DAL и Презентация
Итак, у меня есть отдельная сборка под названием DataLibrary
.
DataLibrary
имеет свои модели (Message
), мои репозиториев и услуги (MessageService
)
В моем сайте MVC я обычно есть контроллер, с функциональностью CRUD. Это будет выглядеть примерно так:
public ActionResult Create(Message message) {
if(ModelState.IsValid) {
db.insert(message);
}
Return View(message);
}
Но с помощью Repository Pattern, с сервисным слоем для общения у меня есть это вместо:
public ActionResult Create(MessageCreateModel message) {
if(ModelState.IsValid) {
MessageService.SendMessage(message.ToDTO());
}
Return View(message);
}
Как я знаю, что операция была успешной или неудачной и по какой причине?
Как получить заполненные данные из бизнес-логики службы в то же время, что и выше?
И как мне достичь обоих этих двух выше, приклеиваясь как можно ближе к шаблону проектирования MVC/spearation проблем для расширяемости?
Чтобы уточнить, сервисный уровень, репозитории и DTO завернуты внутри отдельной сборки. – Smithy