Beispiel #1
0
        /// <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"));
        }
Beispiel #2
0
 public void DeleteGroupVisit(GroupVisit groupVisit)
 {
     _unitOfWork.GroupVisits.Remove(groupVisit);
     _unitOfWork.Complete();
 }
Beispiel #3
0
 public void EditGroupVisit(GroupVisit groupVisit)
 {
     _unitOfWork.GroupVisits.Update(groupVisit);
     _unitOfWork.Complete();
 }
Beispiel #4
0
 public void AddGroupVisit(GroupVisit groupVisit)
 {
     _unitOfWork.GroupVisits.Add(groupVisit);
     _unitOfWork.Complete();
 }