/// <summary> /// Validates the list of updated holidays /// </summary> /// <param name="holidays"></param> private void ValidateHolidaysListUpdateRequest(HolidayPatternInfoRequest request) { var existingHolidays = holidayPatternRepository.Get(request.HolidayPatternId) .Holidays.Where(x => x.IsActive).Select(y => y.Date).ToList(); if (request.Holidays.Where(x => x.Date <= TimeZoneUtility.GetCurrentTimestamp().Date).Any(y => !existingHolidays.Contains(y))) { throw new NDMSBusinessException(ValidationMessages.PastDateError); } }
/// <summary> /// Update Holiday Mappings /// </summary> /// <param name="request"></param> /// <param name="userName"></param> private void UpdateHolidayMapping(HolidayPatternInfoRequest request, string userName) { var loggedInUserId = userRepository.GetAll().FirstOrDefault(x => x.AccountName == userName).Id; var holidayPattern = holidayPatternRepository.Get(request.HolidayPatternId); var removedHolidays = holidayPattern.Holidays.Where(m => m.IsActive && !request.Holidays.Contains(m.Date)); foreach (var holiday in removedHolidays) { holiday.IsActive = false; holiday.LastModifiedBy = loggedInUserId; holiday.LastModifiedOn = TimeZoneUtility.GetCurrentTimestamp(); } var reactivatedHolidays = holidayPattern.Holidays.Where(m => !m.IsActive && request.Holidays.Contains(m.Date)); foreach (var holiday in reactivatedHolidays) { holiday.IsActive = true; holiday.LastModifiedBy = loggedInUserId; holiday.LastModifiedOn = TimeZoneUtility.GetCurrentTimestamp(); } var addedHolidays = request.Holidays.Where(x => !holidayPattern.Holidays.Select(m => m.Date).Contains(x)); foreach (var holiday in addedHolidays) { holidayPattern.Holidays.Add(new HolidayPatternInfo { HolidayPatternId = request.HolidayPatternId, Date = holiday.Date, IsActive = true, CreatedBy = loggedInUserId, CreatedOn = TimeZoneUtility.GetCurrentTimestamp(), LastModifiedBy = loggedInUserId, LastModifiedOn = TimeZoneUtility.GetCurrentTimestamp() }); } holidayPatternRepository.AddOrUpdate(holidayPattern); holidayPatternRepository.Save(); }
public IHttpActionResult UpdateHolidayPatternInfo([FromBody] HolidayPatternInfoRequest request) { CheckModelState(); holidayPatternManager.UpdateHolidayPatternMapping(request, Username); return(Ok()); }
/// <summary> /// Update Holidays Mapping /// </summary> /// <param name="request"></param> /// <param name="userName"></param> public void UpdateHolidayPatternMapping(HolidayPatternInfoRequest request, string userName) { ValidateHolidaysListUpdateRequest(request); UpdateHolidayMapping(request, userName); }