示例#1
0
        public void Edit_Succeeds()
        {
            DateTime date = DateTime.Today;

            CustomDayDTO dayDTO = new CustomDayDTO()
            {
                TemplateName = "eerste_week_eerste_dag",
                DayNr        = 1,
                WeekNr       = 1,
                Date         = DateTime.Today,
                PreDish      = "Kervelsoep",
                MainDish     = "Kip",
                Dessert      = "Chocomousse",
                Notes        = null
            };

            _customDayRepository.Setup(c => c.GetByDate(date)).Returns(_dummyDBContext.CustomDay1);
            _dayRepository.Setup(d => d.GetByWeekAndDay(dayDTO.TemplateName, dayDTO.WeekNr, dayDTO.DayNr)).Returns(_dummyDBContext.Day1);

            ActionResult <CustomDay> actionResult = _controller.Edit(date, dayDTO);
            var       response  = actionResult?.Result as OkObjectResult;
            CustomDay customDay = response?.Value as CustomDay;

            Assert.Equal("Chocomousse", customDay.Dessert);
            Assert.Equal(dayDTO.DayNr, customDay.DayNr);

            _customDayRepository.Verify(a => a.SaveChanges(), Times.Once);
        }
        public ActionResult <CustomDay> Edit(DateTime date, CustomDayDTO model)
        {
            CustomDay dayToEdit = _customDayRepository.GetByDate(date);

            if (dayToEdit == null)
            {
                return(NotFound());
            }
            else
            {
                if (!dayToEdit.WeekNr.Equals(model.TemplateName) || (dayToEdit.WeekNr != model.WeekNr) || (dayToEdit.DayNr != model.DayNr))
                {
                    try
                    {
                        Day templateDayChosen = _dayRepository.GetByWeekAndDay(model.TemplateName, model.WeekNr, model.DayNr);
                        dayToEdit.TemplateName  = templateDayChosen.TemplateName;
                        dayToEdit.WeekNr        = templateDayChosen.WeekNr;
                        dayToEdit.DayNr         = templateDayChosen.DayNr;
                        dayToEdit.DayActivities = new List <DayActivity>();
                        dayToEdit.Helpers       = new List <Helper>();
                        foreach (DayActivity dayActivity in templateDayChosen.DayActivities)
                        {
                            DayActivity dayActivityToAdd = new DayActivity(dayToEdit, dayActivity.Activity, dayActivity.TimeOfDay);
                            dayToEdit.AddDayActivity(dayActivityToAdd);
                        }

                        foreach (Helper helper in templateDayChosen.Helpers)
                        {
                            Helper helperToAdd = new Helper(dayToEdit, helper.User);
                            dayToEdit.AddHelper(helperToAdd);
                        }
                    }
                    catch (Exception ex)
                    {
                        return(BadRequest(ex.Message));
                    }
                }
                try
                {
                    dayToEdit.Date     = model.Date;
                    dayToEdit.PreDish  = model.PreDish;
                    dayToEdit.MainDish = model.MainDish;
                    dayToEdit.Dessert  = model.Dessert;
                    _customDayRepository.SaveChanges();
                    return(Ok(dayToEdit));
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                };
            }
        }
示例#3
0
        public void AddCustomDay_NonExistingWeekNrAndDayNr_ReturnsNotFound()
        {
            CustomDayDTO dayDTO = new CustomDayDTO()
            {
                TemplateName = "eerste_week_eerste_dag",
                DayNr        = 8,
                WeekNr       = 5,
                Date         = DateTime.Today,
                PreDish      = "Kervelsoep",
                MainDish     = "Kip",
                Dessert      = "Chocomousse",
                Notes        = null
            };

            _dayRepository.Setup(a => a.GetByWeekAndDay(dayDTO.TemplateName, 1, 1)).Returns(_dummyDBContext.CustomDay1);

            ActionResult <CustomDay> actionResult = _controller.Add(dayDTO);

            Assert.IsType <NotFoundResult>(actionResult?.Result);
            _customDayRepository.Verify(a => a.SaveChanges(), Times.Never);
        }
示例#4
0
        public void EditCustomDay_WrongDate_ReturnsNotFound()
        {
            DateTime     date   = new DateTime(1945, 1, 1);
            CustomDayDTO dayDTO = new CustomDayDTO()
            {
                TemplateName = "eerste_week_eerste_dag",
                DayNr        = 1,
                WeekNr       = 1,
                Date         = DateTime.Today,
                PreDish      = "Kervelsoep",
                MainDish     = "Kip",
                Dessert      = "Chocomousse",
                Notes        = null
            };

            _customDayRepository.Setup(c => c.GetByDate(new DateTime(2019, 11, 21))).Returns(_dummyDBContext.CustomDay1);

            ActionResult <CustomDay> actionResult = _controller.Edit(date, dayDTO);

            Assert.IsType <NotFoundResult>(actionResult?.Result);
            _customDayRepository.Verify(a => a.SaveChanges(), Times.Never);
        }
        public ActionResult <CustomDay> Add(CustomDayDTO model)
        {
            Day templateDayChosen = _dayRepository.GetByWeekAndDay(model.TemplateName, model.WeekNr, model.DayNr);

            if (templateDayChosen == null)
            {
                return(NotFound());
            }
            else
            {
                try
                {
                    CustomDay customDayToCreate = new CustomDay(templateDayChosen.TemplateName, templateDayChosen.WeekNr, templateDayChosen.DayNr, model.Date, model.PreDish, model.MainDish, model.Dessert);
                    if (_customDayRepository.GetByDate(customDayToCreate.Date) != null)
                    {
                        return(BadRequest("A day for this date already exists"));
                    }
                    foreach (DayActivity dayActivity in templateDayChosen.DayActivities)
                    {
                        DayActivity dayActivityToAdd = new DayActivity(customDayToCreate, dayActivity.Activity, dayActivity.TimeOfDay);
                        customDayToCreate.AddDayActivity(dayActivityToAdd);
                    }
                    foreach (Helper helper in templateDayChosen.Helpers)
                    {
                        Helper helperToAdd = new Helper(customDayToCreate, helper.User);
                        customDayToCreate.AddHelper(helperToAdd);
                    }
                    _customDayRepository.Add(customDayToCreate);
                    _customDayRepository.SaveChanges();
                    return(Ok(customDayToCreate));
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }
            }
        }