public IActionResult Edit(int id)
        {
            //pull schedule (from id passed in as a parameter) and all it's associated data from the Course, DayOfTheWeek, and Time tables
            var schedule     = _scheduleRepository.ReadSchedule(id);
            var course       = schedule.Course.FirstOrDefault(s => s.ScheduleId == schedule.Id);
            var dayOfTheWeek = schedule.DayOfTheWeek.FirstOrDefault(d => d.ScheduleId == schedule.Id);
            var time         = schedule.Time.FirstOrDefault(t => t.ScheduleId == schedule.Id);

            //create a new EditScheduleViewModel and fill it with the information collected from the database above
            var editScheduleViewModel = new EditScheduleViewModel
            {
                CourseCode     = course.CourseCode,
                CourseNumber   = course.CourseNumber,
                CourseName     = course.CourseName,
                DayOfTheWeek1  = dayOfTheWeek.DayOfTheWeek1,
                StartTime      = time.StartTime,
                StopTime       = time.StopTime,
                ScheduleId     = schedule.Id,
                CourseId       = course.Id,
                DayOfTheWeekId = dayOfTheWeek.Id,
                TimeId         = time.Id
            };

            //pass this EditScheduleViewModel to the user, which includes the information of the schedule to be editted
            return(View(editScheduleViewModel));
        }
        public IActionResult Edit(EditScheduleViewModel model, int StoreId)
        {
            this.ViewBag.StoreId = StoreId;
            if (!this.ModelState.IsValid)
            {
            }
            else if (model.StartDate < DateTime.Today)
            {
                ModelState.AddModelError("StartDate", "StartDate Must be Bigger Than The CurrenDate");
            }
            else if (model.EndDate < model.StartDate)
            {
                ModelState.AddModelError("EndDate", "EndDate Must be Bigger Than The StartDate");
            }
            else if (this.service.ISShiftAvailable(model.StartDate, model.EndDate))
            {
                ModelState.AddModelError("StartDate", "This Shift Is Already Occupied");
            }
            else
            {
                this.service.Update(model);
                return(this.RedirectToAction("Schedule", new { Id = StoreId }));
            }

            return(this.View(model));
        }
Exemple #3
0
        public ActionResult EditCourseSchedule(int id)
        {
            //var scheduleToEdit = re.GetCourseSchedule(id);
            //return View(scheduleToEdit);
            //replace next line with whatever you coded to get all the info
            var model = new EditScheduleViewModel();

            model.Schedule = re.GetCourseSchedule(id);
            return(View(model));
        }
Exemple #4
0
        public async Task <IActionResult> EditSchedule(EditScheduleViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            await _doctorService.UpdateSchedule(viewModel.Schedule);

            return(LocalRedirect(viewModel.returnUrl));
        }
Exemple #5
0
        public async Task <IActionResult> EditSchedule(int id, string docId, string returnUrl)
        {
            var vm = new EditScheduleViewModel
            {
                DocId     = docId,
                returnUrl = returnUrl,
                Schedule  = await _doctorService.GetScheduleById(id)
            };

            return(View(vm));
        }
Exemple #6
0
 public async Task <ActiveSchedule> ToActiveScheduleFromEditAsync(EditScheduleViewModel model)
 {
     return(new ActiveSchedule
     {
         Id = model.ActiveScheduleId,
         IsActive = true,
         UpdateDate = DateTime.Now,
         ScheduleDay = model.Day,
         Services = await _serviceRepository.GetByIdAsync(model.ServicesSupliedId),
         Remarks = model.Remarks,
     });
 }
        public void Update(EditScheduleViewModel model)
        {
            var Schedule = this.db.EmployeesSchedules.FirstOrDefault(x => x.Id == model.Id);

            Schedule.UserId           = model.UserId;
            Schedule.EmployeeFullName = model.EmployeeFullName;
            Schedule.EndDate          = model.EndDate;
            Schedule.StartDate        = model.StartDate;
            Schedule.User             = this.db.Users.FirstOrDefault(x => x.Id == model.UserId);

            this.db.Entry(Schedule).State = EntityState.Detached;
            this.db.Update(Schedule);
            this.db.SaveChanges();
        }
        public EditScheduleViewModel FindById(int id)
        {
            var EmployeeSchedule = this.db.EmployeesSchedules.FirstOrDefault(x => x.Id == id);

            EditScheduleViewModel editSchedule = new EditScheduleViewModel
            {
                Id               = EmployeeSchedule.Id,
                UserId           = EmployeeSchedule.UserId,
                EmployeeFullName = EmployeeSchedule.EmployeeFullName,
                EndDate          = EmployeeSchedule.EndDate,
                StartDate        = EmployeeSchedule.StartDate
            };

            return(editSchedule);
        }
Exemple #9
0
        public ActionResult EditCourseSchedule(EditScheduleViewModel model, FormCollection col, int id)
        {
            var scheduleToEdit = (from s in db.Course_Schedules
                                  where s.CourseId == id
                                  select s).ToList();

            db.Course_Schedules.RemoveRange(scheduleToEdit);
            db.SaveChanges();

            string[] days = col["selectedDays"].Split(',');
            foreach (var day in days)
            {
                Course_Schedule newSchedule = new Course_Schedule();
                newSchedule.CourseId  = id;
                newSchedule.DayOfWeek = day;
                newSchedule.StartTime = TimeSpan.Parse(col["startTime"]);
                newSchedule.EndTime   = TimeSpan.Parse(col["endTime"]);


                db.Course_Schedules.Add(newSchedule);
                db.SaveChanges();
            }
            //model.Schedule = re.GetCourseSchedule(id);
            //var scheduleToEdit = re.GetCourseSchedule(id);
            //foreach(var schedule in scheduleToEdit)
            //{
            //    string[] days = col["selectedDays"].Split(',');
            //    foreach (var day in days)
            //    {
            //        schedule.DayOfWeek = day;
            //    }
            //    schedule.StartTime = TimeSpan.Parse(col["startTime"]);
            //    schedule.EndTime = TimeSpan.Parse(col["endTime"]);
            //    //schedule.StartTime = model.Schedule.First().StartTime;
            //    //schedule.EndTime = model.Schedule.First().EndTime;
            //    db.SaveChanges();
            //   // }
            //}

            return(RedirectToAction("CourseDetails", "Course", new { id = id }));
        }
Exemple #10
0
        public async Task <IActionResult> EditSchedule(string WeekScheduleId)
        {
            var Sched = await(from s in DBContext.WeekSchedules.Include(s => s.Speciality).ThenInclude(di => di.Disciplines)
                              .Include(s => s.Schedule)
                              where s.id.ToString() == WeekScheduleId select s).FirstOrDefaultAsync();
            var dScheds = await(from d in DBContext.DaySchedules.Include(d => d.DisciplinesForDay)
                                where Sched.Schedule.Contains(d)
                                select d).ToListAsync();

            Sched.Schedule = dScheds;
            var availablediscs = await(from di in DBContext.Disciplines.Include(t => t.Teacher)
                                       where Sched.Speciality.Disciplines.Contains(di) select di).ToListAsync();
            var model = new EditScheduleViewModel()
            {
                AvailableDisciplines = availablediscs,
                userGrants           = await checkService.getUserGrants(User)
            };

            model.init(Sched);
            return(View(model));
        }
        public async Task <IActionResult> EditSchedule(EditScheduleViewModel model)
        {
            if (ModelState.IsValid)
            {
                var activeSchedule = await _converterHelper.ToActiveScheduleFromEditAsync(model);


                try
                {
                    await _activeScheduleRepository.UpdateAsync(activeSchedule);

                    return(RedirectToAction("Index"));
                }
                catch
                {
                    return(View(model));
                }
            }

            return(View(model));
        }
Exemple #12
0
        public void Edit_ShouldAddCorrectWoDDayAndDailyWorkoutViewModelToScheduleModel()
        {
            var mapperStub = new Mock <IMapper>();
            var weekScheduleServiceStub       = new Mock <IWeekScheduleService>();
            var workoutInformationServiceStub = new Mock <IWorkoutInformationService>();
            var modelViewFactoryStub          = new Mock <IModelViewFactory>();
            var dailyWorkoutServiceStub       = new Mock <IDailyWorkoutService>();

            var sut = new ScheduleController(mapperStub.Object, weekScheduleServiceStub.Object, workoutInformationServiceStub.Object, dailyWorkoutServiceStub.Object, modelViewFactoryStub.Object);

            var id = new Guid();

            var weekScheduleDataModel = new WeekSchedule();

            weekScheduleDataModel.DailyWorkouts = new List <DailyWorkout>()
            {
                new DailyWorkout()
            };

            var dailyWorkoutViewModel = new DailyWorkoutViewModel();

            dailyWorkoutViewModel.Day = "monday";

            var scheduleViewModel = new EditScheduleViewModel();

            scheduleViewModel.AllWorkouts = new Dictionary <string, DailyWorkoutViewModel>();

            weekScheduleServiceStub.Setup(x => x.GetById(It.IsAny <Guid>())).Returns(weekScheduleDataModel);
            mapperStub.Setup(x => x.Map <EditScheduleViewModel>(It.IsAny <WeekSchedule>())).Returns(scheduleViewModel);
            mapperStub.Setup(x => x.Map <DailyWorkoutViewModel>(It.IsAny <DailyWorkout>())).Returns(dailyWorkoutViewModel);

            sut.WithCallTo(c => c.Edit(id));

            Assert.AreEqual("monday", scheduleViewModel.AllWorkouts.Keys.First());
            Assert.AreSame(dailyWorkoutViewModel, scheduleViewModel.AllWorkouts[dailyWorkoutViewModel.Day]);
        }
Exemple #13
0
        public void Edit_GetCallMapperToGetDailyWorkoutViewModelOnceWhenScheduleDataModelContainsOneWorkout()
        {
            var mapperStub = new Mock <IMapper>();
            var weekScheduleServiceStub       = new Mock <IWeekScheduleService>();
            var workoutInformationServiceStub = new Mock <IWorkoutInformationService>();
            var modelViewFactoryStub          = new Mock <IModelViewFactory>();
            var dailyWorkoutServiceStub       = new Mock <IDailyWorkoutService>();

            var sut = new ScheduleController(mapperStub.Object, weekScheduleServiceStub.Object, workoutInformationServiceStub.Object, dailyWorkoutServiceStub.Object, modelViewFactoryStub.Object);

            var id = new Guid();

            var weekScheduleDataModel = new WeekSchedule();

            weekScheduleDataModel.DailyWorkouts = new List <DailyWorkout>()
            {
                new DailyWorkout()
            };

            var dailyWorkoutViewModel = new DailyWorkoutViewModel();

            dailyWorkoutViewModel.Day = "monday";

            var scheduleViewModel = new EditScheduleViewModel();

            scheduleViewModel.AllWorkouts = new Dictionary <string, DailyWorkoutViewModel>();

            weekScheduleServiceStub.Setup(x => x.GetById(It.IsAny <Guid>())).Returns(weekScheduleDataModel);
            mapperStub.Setup(x => x.Map <EditScheduleViewModel>(It.IsAny <WeekSchedule>())).Returns(scheduleViewModel);
            mapperStub.Setup(x => x.Map <DailyWorkoutViewModel>(It.IsAny <DailyWorkout>())).Returns(dailyWorkoutViewModel);

            sut
            .WithCallTo(c => c.Edit(id));

            mapperStub.Verify(x => x.Map <DailyWorkoutViewModel>(weekScheduleDataModel.DailyWorkouts.First()), Times.Once);
        }
Exemple #14
0
        public void Edit_ShouldRenderDefaultViewWithCorrectViewModel()
        {
            var mapperStub = new Mock <IMapper>();
            var weekScheduleServiceStub       = new Mock <IWeekScheduleService>();
            var workoutInformationServiceStub = new Mock <IWorkoutInformationService>();
            var modelViewFactoryStub          = new Mock <IModelViewFactory>();
            var dailyWorkoutServiceStub       = new Mock <IDailyWorkoutService>();

            var sut = new ScheduleController(mapperStub.Object, weekScheduleServiceStub.Object, workoutInformationServiceStub.Object, dailyWorkoutServiceStub.Object, modelViewFactoryStub.Object);

            var id = new Guid();

            var weekScheduleDataModel = new WeekSchedule();

            weekScheduleDataModel.DailyWorkouts = new List <DailyWorkout>()
            {
                new DailyWorkout()
            };

            var dailyWorkoutViewModel = new DailyWorkoutViewModel();

            dailyWorkoutViewModel.Day = "monday";

            var scheduleViewModel = new EditScheduleViewModel();

            scheduleViewModel.AllWorkouts = new Dictionary <string, DailyWorkoutViewModel>();

            weekScheduleServiceStub.Setup(x => x.GetById(It.IsAny <Guid>())).Returns(weekScheduleDataModel);
            mapperStub.Setup(x => x.Map <EditScheduleViewModel>(It.IsAny <WeekSchedule>())).Returns(scheduleViewModel);
            mapperStub.Setup(x => x.Map <DailyWorkoutViewModel>(It.IsAny <DailyWorkout>())).Returns(dailyWorkoutViewModel);

            sut
            .WithCallTo(c => c.Edit(id))
            .ShouldRenderDefaultView()
            .WithModel(scheduleViewModel);
        }
Exemple #15
0
        public async Task <IActionResult> EditSchedule(EditScheduleViewModel model)
        {
            var spec = await(from sp in DBContext.Specialities.Include(s => s.Schedules)
                             where sp.Id.ToString() == model.SpecialityId
                             select sp).FirstOrDefaultAsync();
            var oldShedule = await(from sc in DBContext.WeekSchedules
                                   where sc.id == model.WeekScheduleId
                                   select sc).FirstOrDefaultAsync();

            spec.Schedules.Remove(oldShedule);

            DBContext.Remove(oldShedule);
            if (model.WeekScheduleName == null)
            {
                model.WeekScheduleName = "Без названия";
            }

            var NewWeekSchedule = new EWeekSchedule()
            {
                Name       = model.WeekScheduleName,
                Speciality = spec,
                Schedule   = new List <EDaySchedule>(6)
            };

            // DBContext.WeekSchedules.Add(NewWeekSchedule);

            NewWeekSchedule.Schedule.Add(new EDaySchedule()//mon
            {
                WeekSchedule      = NewWeekSchedule,
                DayNumber         = 0,
                DisciplinesForDay = new List <EScheduleItem>(8)
            });
            //DBContext.DaySchedules.Add(NewWeekSchedule.Schedule[0]);
            for (int i = 0; i < 8; i++)
            {
                var discipline = model.mon[i];
                discipline.DaySchedule = NewWeekSchedule.Schedule[0];
                if (discipline.DisciplineId.ToString() == "-1")
                {
                    discipline.Name       = "Нет пары";
                    discipline.TeacherFIO = "";
                    discipline.Type       = "";
                }
                else
                {
                    var disc = await(from di in DBContext.Disciplines.Include(t => t.Teacher)
                                     where di.Id == discipline.DisciplineId
                                     select di).FirstOrDefaultAsync();
                    discipline.Name       = disc.Name;
                    discipline.TeacherFIO = disc.Teacher.FIO;
                }
                if (discipline.Classroom == null)
                {
                    discipline.Classroom = "";
                }

                NewWeekSchedule.Schedule[0].DisciplinesForDay.Add(discipline);
            }

            NewWeekSchedule.Schedule.Add(new EDaySchedule()//tue
            {
                WeekSchedule      = NewWeekSchedule,
                DayNumber         = 1,
                DisciplinesForDay = new List <EScheduleItem>(8)
            });
            //DBContext.DaySchedules.Add(NewWeekSchedule.Schedule[0]);
            for (int i = 0; i < 8; i++)
            {
                var discipline = model.tue[i];
                discipline.DaySchedule = NewWeekSchedule.Schedule[1];
                if (discipline.DisciplineId.ToString() == "-1")
                {
                    discipline.Name       = "Нет пары";
                    discipline.TeacherFIO = "";
                    discipline.Type       = "";
                }
                else
                {
                    var disc = await(from di in DBContext.Disciplines.Include(t => t.Teacher)
                                     where di.Id == discipline.DisciplineId
                                     select di).FirstOrDefaultAsync();
                    discipline.Name       = disc.Name;
                    discipline.TeacherFIO = disc.Teacher.FIO;
                }
                if (discipline.Classroom == null)
                {
                    discipline.Classroom = "";
                }
                NewWeekSchedule.Schedule[1].DisciplinesForDay.Add(discipline);
            }

            NewWeekSchedule.Schedule.Add(new EDaySchedule()//wed
            {
                WeekSchedule      = NewWeekSchedule,
                DayNumber         = 2,
                DisciplinesForDay = new List <EScheduleItem>(8)
            });
            //DBContext.DaySchedules.Add(NewWeekSchedule.Schedule[0]);
            for (int i = 0; i < 8; i++)
            {
                var discipline = model.wed[i];
                discipline.DaySchedule = NewWeekSchedule.Schedule[2];
                if (discipline.DisciplineId.ToString() == "-1")
                {
                    discipline.Name       = "Нет пары";
                    discipline.TeacherFIO = "";
                    discipline.Type       = "";
                }
                else
                {
                    var disc = await(from di in DBContext.Disciplines.Include(t => t.Teacher)
                                     where di.Id == discipline.DisciplineId
                                     select di).FirstOrDefaultAsync();
                    discipline.Name       = disc.Name;
                    discipline.TeacherFIO = disc.Teacher.FIO;
                }
                if (discipline.Classroom == null)
                {
                    discipline.Classroom = "";
                }
                NewWeekSchedule.Schedule[2].DisciplinesForDay.Add(discipline);
            }

            NewWeekSchedule.Schedule.Add(new EDaySchedule()//thu
            {
                WeekSchedule      = NewWeekSchedule,
                DayNumber         = 3,
                DisciplinesForDay = new List <EScheduleItem>(8)
            });
            //DBContext.DaySchedules.Add(NewWeekSchedule.Schedule[0]);
            for (int i = 0; i < 8; i++)
            {
                var discipline = model.thu[i];
                discipline.DaySchedule = NewWeekSchedule.Schedule[3];
                if (discipline.DisciplineId.ToString() == "-1")
                {
                    discipline.Name       = "Нет пары";
                    discipline.TeacherFIO = "";
                    discipline.Type       = "";
                }
                else
                {
                    var disc = await(from di in DBContext.Disciplines.Include(t => t.Teacher)
                                     where di.Id == discipline.DisciplineId
                                     select di).FirstOrDefaultAsync();
                    discipline.Name       = disc.Name;
                    discipline.TeacherFIO = disc.Teacher.FIO;
                }
                if (discipline.Classroom == null)
                {
                    discipline.Classroom = "";
                }
                NewWeekSchedule.Schedule[3].DisciplinesForDay.Add(discipline);
            }

            NewWeekSchedule.Schedule.Add(new EDaySchedule()//fri
            {
                WeekSchedule      = NewWeekSchedule,
                DayNumber         = 4,
                DisciplinesForDay = new List <EScheduleItem>(8)
            });
            //DBContext.DaySchedules.Add(NewWeekSchedule.Schedule[0]);
            for (int i = 0; i < 8; i++)
            {
                var discipline = model.fri[i];
                discipline.DaySchedule = NewWeekSchedule.Schedule[4];
                if (discipline.DisciplineId.ToString() == "-1")
                {
                    discipline.Name       = "Нет пары";
                    discipline.TeacherFIO = "";
                    discipline.Type       = "";
                }
                else
                {
                    var disc = await(from di in DBContext.Disciplines.Include(t => t.Teacher)
                                     where di.Id == discipline.DisciplineId
                                     select di).FirstOrDefaultAsync();
                    discipline.Name       = disc.Name;
                    discipline.TeacherFIO = disc.Teacher.FIO;
                }
                if (discipline.Classroom == null)
                {
                    discipline.Classroom = "";
                }
                NewWeekSchedule.Schedule[4].DisciplinesForDay.Add(discipline);
            }

            NewWeekSchedule.Schedule.Add(new EDaySchedule()//sat
            {
                WeekSchedule      = NewWeekSchedule,
                DayNumber         = 5,
                DisciplinesForDay = new List <EScheduleItem>(8)
            });
            //DBContext.DaySchedules.Add(NewWeekSchedule.Schedule[0]);
            for (int i = 0; i < 8; i++)
            {
                var discipline = model.sat[i];
                discipline.DaySchedule = NewWeekSchedule.Schedule[5];
                if (discipline.DisciplineId.ToString() == "-1")
                {
                    discipline.Name       = "Нет пары";
                    discipline.TeacherFIO = "";
                    discipline.Type       = "";
                }
                else
                {
                    var disc = await(from di in DBContext.Disciplines.Include(t => t.Teacher)
                                     where di.Id == discipline.DisciplineId
                                     select di).FirstOrDefaultAsync();
                    discipline.Name       = disc.Name;
                    discipline.TeacherFIO = disc.Teacher.FIO;
                }
                if (discipline.Classroom == null)
                {
                    discipline.Classroom = "";
                }
                NewWeekSchedule.Schedule[5].DisciplinesForDay.Add(discipline);
            }
            spec.Schedules.Add(NewWeekSchedule);
            DBContext.Add(NewWeekSchedule);
            await DBContext.SaveChangesAsync();

            return(RedirectToAction("Index", new { SpecId = spec.Id }));
        }