public IQueryable <PostModel> GetPost(int threadId, string sessionKey) { var user = this.userRepository .GetAll().Where(usr => usr.SessionKey == sessionKey).FirstOrDefault(); if (user == null) { throw new InvalidOperationException("The user is not logged in"); } var threadEnitity = this.threadRepository .GetAll().Where(th => th.Id == threadId).FirstOrDefault(); if (threadEnitity != null) { var posts = threadEnitity.Posts; var models = new List <PostModel>(); foreach (var post in posts) { models.Add(PostModel.CreateFromPostEnitity(post)); } return(models.OrderByDescending(p => p.PostDate).AsQueryable()); } return(null); }