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()); }
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))); }