Exemplo n.º 1
0
        public async Task <IActionResult> UpdateHoliday(long id,
                                                        [FromBody] HolidayForUpdateDto holidayForUpdate)
        {
            if (holidayForUpdate == null)
            {
                ModelState.AddModelError("Message", "Unable to locate payload for new request");
                return(BadRequest(ModelState));
            }

            if (_unitOfWork.Repository <Holiday>().Queryable().
                Where(l => l.HolidayDate == holidayForUpdate.HolidayDate && l.Id != id)
                .Count() > 0)
            {
                ModelState.AddModelError("Message", "A holiday has already been loaded for this date");
                return(BadRequest(ModelState));
            }

            var holidayFromRepo = await _holidayRepository.GetAsync(f => f.Id == id);

            if (holidayFromRepo == null)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                holidayFromRepo.HolidayDate = holidayForUpdate.HolidayDate;
                holidayFromRepo.Description = holidayForUpdate.Description;

                _holidayRepository.Update(holidayFromRepo);
                await _unitOfWork.CompleteAsync();
            }

            return(Ok());
        }
Exemplo n.º 2
0
        public async Task <IActionResult> CreateHoliday(
            [FromBody] HolidayForUpdateDto holidayForUpdate)
        {
            if (holidayForUpdate == null)
            {
                ModelState.AddModelError("Message", "Unable to locate payload for new request");
                return(BadRequest(ModelState));
            }

            if (_unitOfWork.Repository <Holiday>().Queryable().
                Where(l => l.HolidayDate == holidayForUpdate.HolidayDate)
                .Count() > 0)
            {
                ModelState.AddModelError("Message", "A holiday has already been loaded for this date");
                return(BadRequest(ModelState));
            }

            long id = 0;

            if (ModelState.IsValid)
            {
                var newHoliday = new Holiday()
                {
                    HolidayDate = holidayForUpdate.HolidayDate,
                    Description = holidayForUpdate.Description
                };

                _holidayRepository.Save(newHoliday);
                id = newHoliday.Id;
            }

            var mappedHoliday = await GetHolidayAsync <HolidayIdentifierDto>(id);

            if (mappedHoliday == null)
            {
                return(StatusCode(500, "Unable to locate newly added item"));
            }

            return(CreatedAtAction("GetHolidayByIdentifier",
                                   new
            {
                id = mappedHoliday.Id
            }, CreateLinksForHoliday <HolidayIdentifierDto>(mappedHoliday)));
        }