public List <ThreadViewModel> GetFilteredList(ThreadBindingModel model) { if (model == null) { return(null); } using (Context context = new Context()) { return(context.Threads .Include(rec => rec.Students) .ThenInclude(rec => rec.StudyingStatus) /*.Where(rec => rec.Students.Select(rec => (!model.DateFrom.HasValue && !model.DateTo.HasValue) || * (model.DateFrom.HasValue && model.DateTo.HasValue && rec.StudyingStatus.DateCreate.Date >= model.DateFrom.Value.Date && * rec.StudyingStatus.DateCreate.Date <= model.DateTo.Value.Date)))*/ .Select(rec => new ThreadViewModel { Faculty = rec.Faculty, Name = rec.Name, Statuses = rec.Students.Select(rec => new StudyingStatusViewModel { Id = rec.StudyingStatus.Id, DateCreate = rec.StudyingStatus.EnrollmentDate, Course = rec.StudyingStatus.Course, StudyingForm = rec.StudyingStatus.StudyingForm, StudyingBase = rec.StudyingStatus.StudyingBase, StudentId = rec.StudyingStatus.StudentId, }).ToList(), }) .ToList()); } }
public ActionResult Create(ThreadBindingModel model, int id) { Forum forum = this.GetForum(id); if (forum == default(Forum) || forum.IsDeleted) { return(this.RedirectToAction("BadRequest", "Error")); } if (!this.ModelState.IsValid) { model.Forum = new IdentifiableForumBindingModel() { Id = forum.ForumId, Title = forum.Title, Description = forum.Description }; return(this.View(model)); } User user = this.GetUser(); Thread newThread = new Thread() { Creator = user, Date = DateTime.Now, Forum = forum, Title = model.Title, }; newThread.Posts.Add(new Post() { Creator = user, PostDate = DateTime.Now, Text = new PostText() { Text = model.Text } }); newThread = this.UnitOfWork .ThreadRepository .Add(newThread); this.UnitOfWork.SaveChanges(); return(this.RedirectToAction("Home", "Thread", new { Id = newThread.ThreadId })); }
public List <ThreadViewModel> Read(ThreadBindingModel model) { if (model == null) { return(storage.GetFullList()); } if (model.Id.HasValue) { return(new List <ThreadViewModel> { storage.GetElement(model) }); } return(storage.GetFilteredList(model)); }
public ThreadViewModel GetElement(ThreadBindingModel model) { if (model == null) { return(null); } using (Context context = new Context()) { Thread thread = context.Threads .Include(rec => rec.Students) .ThenInclude(rec => rec.StudyingStatus) .FirstOrDefault(rec => rec.Name == model.Name || rec.Id == model.Id); return(thread != null?CreateViewModel(thread) : null); } }
/// <summary> /// Create empty model for thread creation /// </summary> /// <param name="id">forum id</param> /// <returns>view for creation</returns> public ActionResult Create(int id) { Forum forum = this.GetForum(id); if (forum == default(Forum) || forum.IsDeleted) { return(this.RedirectToAction("BadRequest", "Error")); } ThreadBindingModel thread = new ThreadBindingModel() { Forum = new IdentifiableForumBindingModel() { Id = forum.ForumId, Title = forum.Title, Description = forum.Description } }; return(this.View(thread)); }