Jak dla mnie za dużo logiki w kontrolerach, ale na tą skale aplikacji w sumie nie ma sensu rozbudowa architektury
na pierwszy rzut oka widze nieźle skomplikowane if() i else()
najlepiej robić to tak, aby ich ciała jasno mówiły co się dzieje
a nie potężne wgłębienia, gdzie trzeba się zagłębić w kod aby sprawdzić co to tak właściwie robi
przykład - jeden z wielu
if (model.cookieProtection) {
///handling cookies by class Cookies
if (Request.Cookies["identifier"] == null) {
///creating new cookie
Response.Cookies["identifier"].Value = model.id.ToString() + ",";
} else {
cookie = new Cookies(Request.Cookies["identifier"]);
if (!cookie.validateCookie(model.id.ToString())) {
ModelState.AddModelError("VotingValidation", "You have already voted on this poll !!");
return View("Vote", model);
}
//update cookie
Response.Cookies["identifier"].Value = cookie.getCookie().Value;
}
Response.Cookies["identifier"].Expires = DateTime.Now.Date.AddMonths(1);
}
rozdzielając logike na metody albo najlepiej na klasy o pojedynczej odpowiedzialności, całość byłaby dużo bardziej czytelna