Доброго времени суток. Имеется метод контроллера, в нем производятся операции с БД и т.п.. На сколько корректно писать код такого рода в методе контроллера. Проект может расти и кода будет все больше и больше. Его нужно куда-то вынести? Или это нормальная практика?
public ActionResult Index()
{
var assessmentList = Session.GetAssessments();
MySqlContext ctx = new MySqlContext();
var dbPosts = ctx.Posts.Take(PostsPerPage).ToList();
List<PostDTO> posts = null;
if (assessmentList != null && assessmentList.Count > 0)
{
posts = dbPosts
.GroupJoin(assessmentList, o => o.Id, i => i.Id, (o, i) =>
new { dbPosts = o, SessPosts = i })
.SelectMany(
oi => oi.SessPosts.DefaultIfEmpty(),
(o, i) => new { dbPosts = o.dbPosts, SessPosts = i }
)
.Select(p => new PostDTO() {
Id = p.dbPosts.Id,
Content = p.dbPosts.Content,
Like = p.SessPosts == null ? null : p.SessPosts.Like
})
.ToList();
}
else
{
posts = dbPosts
.Select(x => new PostDTO() {
Id = x.Id,
Content = x.Content,
Like = null
})
.ToList();
}
return View(posts);
}