public ActionResult Thread(long?id, long page = 0, int capacity = 15) { if (id == null) { return(View("NotFound")); } ThreadPostsModel posts = new ThreadPostsModel { Thread = ThreadDAO.Select(id) }; posts.Creator = AccountDAO.Select(posts.Thread.Account); posts.Post = PostDAO.SelectFirstPostByThread(posts.Creator.Id.Value, posts.Thread.Id.Value); var post = AccountPostDAO.SelectItemsByThread(id.Value).AsEnumerable(); posts.Posts = post.Skip(capacity * (int)page).Take(capacity); posts.Pages = (post.Count() - 1) / capacity; posts.Page = page; ThreadDAO.ViewsCount(id.Value); return(View(posts)); }
public ActionResult Thread(long?id) { if (id == null) { return(View("NotFound")); } ThreadPostsModel posts = new ThreadPostsModel { Thread = db.Threads.Where(e => e.Id == id).Single() }; posts.Creator = db.Accounts.Where(e => e.Id == posts.Thread.Account).Single(); posts.Post = db.Posts.Where(e => e.Account == posts.Creator.Id && e.Thread == posts.Thread.Id).Min(e => e.Id); var result = from post in db.Posts join account in db.Accounts on post.Account equals account.Id orderby post.Id where post.Thread == id select new AccountPostModel { Account = account, Post = post }; posts.Posts = result.ToList().AsEnumerable(); return(View(posts)); }