/// <summary> /// Добавление посещений /// </summary> /// <param name="model"></param> /// <returns></returns> public IActionResult AddVisit(VisitViewModel model) { var date = model.Date; var saved = HttpContext.Session.GetString("SessionStorageThemes"); var storage = new List <SessionStorageThemes>(); if (storage != null) { storage = JsonConvert.DeserializeObject <List <SessionStorageThemes> >(saved); } var themeVisits = new List <ThemeVisit>(); foreach (var savedTheme in storage) { var theme = _db.Theme.Include(x => x.ThemeGroup).Include(x => x.Subject).ThenInclude(x => x.Semester).Where(x => x.Id == savedTheme.ThemeId).FirstOrDefault(); theme.ThemeGroup.UsedHours = savedTheme.ThemeGroup.UsedHours; var hoursPerVisit = savedTheme.Reserved; var typeSubject = theme.Type; var themeVisit = new ThemeVisit() { HoursPerVisit = hoursPerVisit, Theme = theme, TypeSubject = typeSubject }; themeVisits.Add(themeVisit); } var visit = new GroupVisit() { Date = date, ThemeVisits = themeVisits, Subject = _db.Subject.Find(model.SubjectId), Group = _db.Group.Find(model.GroupId), Semester = _db.Subject.Include(x => x.Semester).Where(x => x.Id == model.SubjectId).FirstOrDefault().Semester, Theme = themeVisits.FirstOrDefault().Theme }; _db.GroupVisit.Add(visit); foreach (var visitModify in model.Output.VisitsModify) { var studentVisit = new StudentVisit() { TypeVisit = visitModify.TypeVisit, Student = _db.Student.Find(visitModify.StudentId), GroupVisit = visit, Subject = _db.Subject.Find(model.SubjectId), Theme = visit.ThemeVisits.FirstOrDefault().Theme }; _db.StudentVisit.Add(studentVisit); visit.StudentVisits.Add(studentVisit); visit.Theme.StudentVisits.Add(studentVisit); } _db.SaveChanges(); return(View("VisitAddedView")); }
public void DeleteGroupVisit(GroupVisit groupVisit) { _unitOfWork.GroupVisits.Remove(groupVisit); _unitOfWork.Complete(); }
public void EditGroupVisit(GroupVisit groupVisit) { _unitOfWork.GroupVisits.Update(groupVisit); _unitOfWork.Complete(); }
public void AddGroupVisit(GroupVisit groupVisit) { _unitOfWork.GroupVisits.Add(groupVisit); _unitOfWork.Complete(); }