public UpdateBranchCalendarResponse UpdateBranchCalendar(UpdateBranchCalendarRequest request, List <int> branchIds) { var holidayDate = request.HolidayDate.Date; Logger.Info(_logMsg.Clear().SetPrefixMsg("Update BranchCalendar").Add("UpdateMode", request.UpdateMode) .Add("HolidayDate", holidayDate).Add("HolidayDesc", request.HolidayDesc).ToInputLogString()); if (request.UpdateMode == 1) { try { using (var transaction = _context.Database.BeginTransaction(IsolationLevel.ReadCommitted)) { try { var today = DateTime.Now; var calendars = _context.TB_R_BRANCH_CALENDAR.Where(x => EntityFunctions.TruncateTime(x.HOLIDAY_DATE) == holidayDate).ToList(); _context.TB_R_BRANCH_CALENDAR.RemoveRange(calendars); Save(); foreach (var branchId in branchIds) { var calendar = new TB_R_BRANCH_CALENDAR(); calendar.HOLIDAY_DATE = request.HolidayDate.Date; calendar.HOLIDAY_DESC = request.HolidayDesc; calendar.BRANCH_ID = branchId; calendar.CREATE_USER = request.ActionUsername; calendar.UPDATE_USER = request.ActionUsername; calendar.CREATE_DATE = today; calendar.UPDATE_DATE = today; _context.TB_R_BRANCH_CALENDAR.Add(calendar); } Save(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); Logger.Error("Exception occur:\n", ex); return(new UpdateBranchCalendarResponse { IsSuccess = false, ErrorMessage = ex.Message }); } finally { _context.Configuration.AutoDetectChangesEnabled = true; } } } catch (Exception ex) { Logger.Error("Exception occur:\n", ex); return(new UpdateBranchCalendarResponse { IsSuccess = false, ErrorMessage = ex.Message }); } } if (request.UpdateMode == 2) { if (branchIds != null && branchIds.Count > 0) { var today = DateTime.Now; var existingBranchList = _context.TB_R_BRANCH_CALENDAR.Where(x => EntityFunctions.TruncateTime(x.HOLIDAY_DATE) == holidayDate).ToList(); foreach (var branchId in branchIds) { var calendar = existingBranchList.SingleOrDefault(x => x.BRANCH_ID == branchId); if (calendar != null) { // Update calendar.HOLIDAY_DESC = request.HolidayDesc; calendar.UPDATE_USER = request.ActionUsername; calendar.UPDATE_DATE = today; SetEntryStateModified(calendar); } else { calendar = new TB_R_BRANCH_CALENDAR(); calendar.HOLIDAY_DATE = request.HolidayDate.Date; calendar.HOLIDAY_DESC = request.HolidayDesc; calendar.BRANCH_ID = branchId; calendar.CREATE_USER = request.ActionUsername; calendar.UPDATE_USER = request.ActionUsername; calendar.CREATE_DATE = today; calendar.UPDATE_DATE = today; _context.TB_R_BRANCH_CALENDAR.Add(calendar); } } Save(); } } return(new UpdateBranchCalendarResponse { IsSuccess = true }); }
public UpdateBranchCalendarResponse UpdateBranchCalendar(UpdateBranchCalendarRequest request, List <int> branchIds) { var holidayDate = request.HolidayDate.Date; if (request.UpdateMode == 1) { var calendars = _context.TB_R_BRANCH_CALENDAR.Where(x => EntityFunctions.TruncateTime(x.HOLIDAY_DATE) == holidayDate).ToList(); _context.TB_R_BRANCH_CALENDAR.RemoveRange(calendars); Save(); var now = DateTime.Now; foreach (var branchId in branchIds) { var calendar = new TB_R_BRANCH_CALENDAR(); calendar.HOLIDAY_DATE = request.HolidayDate.Date; calendar.HOLIDAY_DESC = request.HolidayDesc; calendar.BRANCH_ID = branchId; calendar.CREATE_USER = request.ActionUsername; calendar.UPDATE_USER = request.ActionUsername; calendar.CREATE_DATE = now; calendar.UPDATE_DATE = now; _context.TB_R_BRANCH_CALENDAR.Add(calendar); } Save(); } if (request.UpdateMode == 2) { var existingBranchList = _context.TB_R_BRANCH_CALENDAR.Where(x => EntityFunctions.TruncateTime(x.HOLIDAY_DATE) == holidayDate).ToList(); var now = DateTime.Now; foreach (var branchId in branchIds) { var calendar = existingBranchList.SingleOrDefault(x => x.BRANCH_ID == branchId); if (calendar != null) { // Update calendar.HOLIDAY_DESC = request.HolidayDesc; calendar.UPDATE_USER = request.ActionUsername; calendar.UPDATE_DATE = now; SetEntryStateModified(calendar); } else { calendar = new TB_R_BRANCH_CALENDAR(); calendar.HOLIDAY_DATE = request.HolidayDate.Date; calendar.HOLIDAY_DESC = request.HolidayDesc; calendar.BRANCH_ID = branchId; calendar.CREATE_USER = request.ActionUsername; calendar.UPDATE_USER = request.ActionUsername; calendar.CREATE_DATE = now; calendar.UPDATE_DATE = now; _context.TB_R_BRANCH_CALENDAR.Add(calendar); } } Save(); } return(new UpdateBranchCalendarResponse() { IsSuccess = true, }); }