Прямо сейчас у меня есть веб-приложение ASP MVC в проекте Models, проекте Service, проекте Utilities и нескольких проектах Datastores, которые функционируют в качестве хранилища для одной или нескольких моделей домена.Я очень доволен разделением каждого слоя, но застрял на том, что нужно вернуть из сервисного уровня в веб-приложение.
Например, когда пользователь пытается зарегистрироваться, RegisterViewModel получаетконтроллер.Отдельные фрагменты (электронная почта, пароль и т. Д.) Отправляются на сервисный уровень, который создает объект домена-члена с помощью guid, status, createate и т. Д., Отправляет его в хранилище для хранения и, наконец, возвращает объект-член для веб-приложения для перенаправления на/Member/ enjguid rout.
Но как сервисный уровень должен сообщать веб-приложению, если электронная почта уже существует?В более сложной ситуации мне, возможно, придется проверить существование / действительность нескольких объектов домена и бизнес-правил, поэтому придется возвращать несколько ошибок за один раз.Кроме того, я не хочу, чтобы исключение накапливалось на веб-слое, поэтому сервисный слой перехватывает все исключения, но мне нужно как-то уведомить веб-слой.
Даже если я найду способ вернуть все это, вебслой будет обременен обработкой всего этого и предоставит пользователю различные отзывы.Код контроллера будет громоздким и обрезать ошибки.Есть ли лучшая практика по результату обслуживания до презентации?Должен ли я исключить отдельный уровень обслуживания и иметь код внутри контроллера?Любые мысли приветствуются.