public async Task <IActionResult> Update(int id, HolidayUpdateDTO holidayDTO) { var exists = await _holidayAppService.ExistsHoliday(id); if (exists) { await _holidayAppService.UpdateHoliday(id, holidayDTO); return(NoContent()); } else { return(NotFound()); } }
public async Task UpdateHoliday(int id, HolidayUpdateDTO holidayDTO) { var holiday = await _holidayRepository.GetAll() .AsNoTracking() .Include(x => x.HolidayVariableDates) .FirstOrDefaultAsync(x => x.Id == id); // Remove the variable dates var variableDatesIds = holidayDTO.VariableDates.Select(x => x.Id); var deletedDates = holiday.HolidayVariableDates.Where(x => !variableDatesIds.Contains(x.Id)).ToList(); _mapper.Map(holidayDTO, holiday); _holidayRepository.Update(holiday); _holidayVariableDateRepository.RemoveRange(deletedDates); await _unitOfWork.CommitAsync(); }