Мне просто интересно, как проверить мою модель просмотра.Что должен возвращать метод из уровня обслуживания
Пользователь может владеть только одной командой, поэтому мне нужно как-то проверить его, если у него его нет.
public ActionResult AddTeam(TeamCreatingViewModel teamToAdd)
{
if (ModelState.IsValid)
{
//check if the user has got a team
if (!TeamService.checkIfUserHasCreatedTeam(User.Identity.GetUserId()))
{
//if not then allow him to create one
if (!TeamService.addTeam(teamToAdd, User.Identity.GetUserId()))
{
ViewBag.Info = "Success";
return View("Info");
}
else
{
ViewBag.Info = "It was impossible to create a new team";
return View("Error");
}
}
else
{
ViewBag.info = "You have a team!";
return View("Error");
}
}
else
{
return View("TeamCreatingForm", teamToAdd);
}
}
Или будет ли решение ниже лучше?
public ActionResult AddTeam(TeamCreatingViewModel teamToAdd)
{
if (ModelState.IsValid)
{
if (!TeamService.addTeam(teamToAdd, User.Identity.GetUserId())) //<--- now it is checking and adding (if allowed)
{
ViewBag.Info = "Success";
return View("Info");
}
else
{
ViewBag.Info = "It was impossible to create a new team";
return View("Error");
}
}
else
{
return View("TeamCreatingForm", teamToAdd);
}
}
Как я могу сообщить (из уровня обслуживания), если произошла ошибка (и какие)? Во втором случае пользователи ничего не знают о том, что было сделано неправильно. И в первом случае я должен получить объект объекта 2 раза, что кажется бесполезным.
Ok. Спасибо за ответ, но это хорошая практика? – pred
Да, если ваш код обслуживания будет использоваться из двух или нескольких мест (например, web + api). Я думаю, что это более элегантно, чем бросать исключения и ловить их позже. – Nigrimmist