示例#1
0
        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());
            }
        }
示例#2
0
        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();
        }