Пример #1
0
        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
            });
        }
Пример #2
0
        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,
            });
        }