Exemple #1
0
        public UpdateCalendarResponse UpdateBranchCalendar(UpdateBranchCalendarRequest request)
        {
            ThreadContext.Properties["EventClass"]    = ApplicationHelpers.GetCurrentMethod(1);
            ThreadContext.Properties["RemoteAddress"] = ApplicationHelpers.GetClientIP();

            _branchFacade = new BranchFacade();
            return(_branchFacade.UpdateBranchCalendar(request));
        }
Exemple #2
0
        public UpdateCalendarResponse UpdateBranchCalendar(UpdateBranchCalendarRequest request)
        {
            var stopwatch = System.Diagnostics.Stopwatch.StartNew();
            UpdateCalendarResponse response = new UpdateCalendarResponse();

            Logger.Info(_logMsg.Clear().SetPrefixMsg("Call BranchService.UpdateBranchCalendar").ToInputLogString());
            Logger.Debug("I:--START--:--BranchService.UpdateBranchCalendar--");

            try
            {
                bool valid = false;
                _commonFacade = new CommonFacade();

                if (request.Header != null)
                {
                    valid           = _commonFacade.VerifyServiceRequest <Header>(request.Header);
                    response.Header = new Header
                    {
                        reference_no     = request.Header.reference_no,
                        service_name     = request.Header.service_name,
                        system_code      = request.Header.system_code,
                        transaction_date = request.Header.transaction_date
                    };
                }

                Logger.DebugFormat("-- XMLRequest --\n{0}", request.SerializeObject());
                var auditLog = new AuditLogEntity();
                auditLog.Module    = Constants.Module.WebService;
                auditLog.Action    = Constants.AuditAction.CreateBranch;
                auditLog.IpAddress = ApplicationHelpers.GetClientIP();

                if (!valid)
                {
                    response.StatusResponse = new StatusResponse()
                    {
                        ErrorCode   = Constants.ErrorCode.CSMCalendar001,
                        Status      = Constants.StatusResponse.Failed,
                        Description = "Bad Request, the header is not valid"
                    };

                    return(response);
                }
                else
                {
                    #region == Validate Require Field ==

                    if (string.IsNullOrEmpty(request.HolidayDesc))
                    {
                        response.StatusResponse = new StatusResponse()
                        {
                            ErrorCode   = Constants.ErrorCode.CSMCalendar002,
                            Status      = Constants.StatusResponse.Failed,
                            Description = "ข้อมูลที่ส่งมาไม่ครบถ้วน ไม่สามารถบันทึกรายการได้ (Field=HolidateDesc)"
                        };

                        return(response);
                    }

                    if (request.UpdateMode != 1 && request.UpdateMode != 2)
                    {
                        response.StatusResponse = new StatusResponse()
                        {
                            ErrorCode   = Constants.ErrorCode.CSMCalendar002,
                            Status      = Constants.StatusResponse.Failed,
                            Description = "ข้อมูลที่ไม่สามารถบันทึกรายการได้ เนื่องจากข้อมูลที่ส่งมาอยู่ในรูปแบบไม่ถูกต้อง (UpdateMode ต้องมีค่า 1 (Delete and Insert) หรือ 2 (Merge) เท่านั้น)"
                        };

                        return(response);
                    }

                    #endregion

                    #region == Validate Code ==

                    var branchDataAccess = new BranchDataAccess(_context);

                    var branchCodes = request.BranchCodeList;
                    var branchIds   = new List <int>();

                    if (request.BranchCodeList != null)
                    {
                        var branchCodeNotFoundList = new List <string>();

                        foreach (var code in branchCodes)
                        {
                            var branchId = branchDataAccess.GetBranchIdByBranchCode(code);

                            if (branchId == null)
                            {
                                branchCodeNotFoundList.Add(code);
                            }
                            else
                            {
                                branchIds.Add(branchId.Value);
                            }
                        }

                        //ถ้าlist ของ branch code ที่ไม่มีเบส CSM มากกว่า 0 ให้ส่ง code list กลับไป
                        if (branchCodeNotFoundList.Count > 0)
                        {
                            response.StatusResponse = new StatusResponse()
                            {
                                ErrorCode = Constants.ErrorCode.CSMCalendar004,
                                Status    = Constants.StatusResponse.Failed,
                                BranchCodeNotFoundList = branchCodeNotFoundList,
                                Description            = string.Format(CultureInfo.InvariantCulture, "ข้อมูลที่ไม่สามารถบันทึกรายการได้ เนื่องจากไม่พบ Branch Code ในฐานข้อมูล")
                            };

                            return(response);
                        }
                    }
                    else
                    {
                        request.BranchCodeList = new List <string>();
                    }

                    #endregion

                    var result = branchDataAccess.UpdateBranchCalendar(request, branchIds);

                    if (result.IsSuccess)
                    {
                        response.StatusResponse = new StatusResponse
                        {
                            ErrorCode   = string.Empty,
                            Status      = Constants.StatusResponse.Success,
                            Description = "Save successful"
                        };
                    }
                    else
                    {
                        response.StatusResponse = new StatusResponse
                        {
                            ErrorCode   = Constants.ErrorCode.CSMCalendar003,
                            Status      = Constants.StatusResponse.Failed,
                            Description = result.ErrorMessage
                        };
                        AppLog.AuditLog(auditLog, LogStatus.Fail, response.StatusResponse.Description);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error("Exception occur:\n", ex);
                response.StatusResponse = new StatusResponse
                {
                    ErrorCode   = Constants.ErrorCode.CSMBranch004,
                    Status      = Constants.StatusResponse.Failed,
                    Description = ex.ToString()
                };
            }
            finally
            {
                Logger.DebugFormat("-- XMLResponse --\n{0}", response.SerializeObject());
                stopwatch.Stop();
                Logger.DebugFormat("O:--Finish--:ElapsedMilliseconds/{0}", stopwatch.ElapsedMilliseconds);
            }

            return(response);
        }
Exemple #3
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                if (ValidateInput())
                {
                    var isConnectWsSuccess = false;
                    if (AppConstant.CSMServiceEnableSyncCalendar)
                    {
                        try
                        {
                            //send data to webservice
                            var updateBranchCalendarRequest = new UpdateBranchCalendarRequest();
                            updateBranchCalendarRequest.Header = new WebServiceHeader();
                            updateBranchCalendarRequest.Header.service_name = "CSMBranchService";
                            updateBranchCalendarRequest.Header.user_name    = "SLM";
                            updateBranchCalendarRequest.Header.system_code  = "SLM";
                            updateBranchCalendarRequest.Header.password     = "******";
                            updateBranchCalendarRequest.Header.command      = "UpdateBranchCalendar";
                            updateBranchCalendarRequest.HolidayDate         = tdmHolidayDatePopup.DateValue;
                            updateBranchCalendarRequest.HolidayDesc         = txtHolidayDescPopup.Text.Trim();
                            updateBranchCalendarRequest.BranchCodeList      = GetSelectedNewBranchCode().ToArray();
                            updateBranchCalendarRequest.ActionUsername      = HttpContext.Current.User.Identity.Name;
                            updateBranchCalendarRequest.UpdateMode          = cbEdit.Checked ? 1 : 2;

                            //logging
                            _log.Info("===== [Start] Call WS Submit Staff Data to CSM: InsertOrUpdateBranchCalendar =====");
                            _log.Debug("===== [START] Request Parameter =====");
                            _log.Debug("HolidayDate=" + updateBranchCalendarRequest.HolidayDate);
                            _log.Debug("HolidayDesc=" + updateBranchCalendarRequest.HolidayDesc);
                            _log.Debug("BranchCodeList=" + updateBranchCalendarRequest.BranchCodeList);
                            _log.Debug("ActionUsername="******"UpdateMode=" + updateBranchCalendarRequest.UpdateMode);
                            _log.Debug("===== [END] Request Parameter =====");

                            var start = DateTime.Now;
                            _log.DebugFormat("Start Call InsertOrUpdateBranchCalendar at {0:dd/MM/yyyy HH:mm:ss}", start);

                            var csmBranchService = new CSMBranchServiceClient();
                            var response         = csmBranchService.UpdateBranchCalendar(updateBranchCalendarRequest);
                            isConnectWsSuccess = true;

                            var stop = DateTime.Now;
                            _log.DebugFormat("End Call InsertOrUpdateBranchCalendar at {0:dd/MM/yyyy HH:mm:ss} (Elapsed Time={1} seconds)", stop, stop.Subtract(start).TotalSeconds);

                            if (response.StatusResponse.Status == "SUCCESS")
                            {
                                _log.Info("===== [End] Call WS Submit Staff Data to CSM: InsertOrUpdateBranchCalendar (SUCCESS) =====");
                                _log.Debug("===== [START] Response Data =====");
                                _log.Debug("IsSuccess=" + response.StatusResponse.Status);
                                _log.Debug("ErrorCode=" + response.StatusResponse.ErrorCode);
                                _log.Debug("ErrorMessage=" + response.StatusResponse.Description);
                                _log.Debug("===== [END] Response Data =====");
                            }
                            else if (response.StatusResponse.Status == "FAILED")
                            {
                                _log.Error("===== [End] Call WS Submit Staff Data to CSM: InsertOrUpdateBranchCalendar (FAIL) =====");
                                _log.Error("===== [START] Response Data =====");
                                _log.Error("IsSuccess=" + response.StatusResponse.Status);
                                _log.Error("ErrorCode=" + response.StatusResponse.ErrorCode);
                                _log.Error("ErrorMessage=" + response.StatusResponse.Description);
                                _log.Error("===== [END] Response Data =====");
                            }

                            if (response.StatusResponse.Status == "FAILED")
                            {
                                if (response.StatusResponse.ErrorCode == "004") // ไม่พบ branch ที่ CSM แสดง error message branch code และ branch name
                                {
                                    var errorMessage = new StringBuilder();
                                    var count        = 0;
                                    foreach (var branchCode in response.StatusResponse.BranchCodeNotFoundList)
                                    {
                                        //displat last format
                                        if (count >= 0 && count <= 4)
                                        {
                                            errorMessage.AppendFormat("{0} :สาขา{1}\r\n", branchCode, BranchBiz.GetBranchNameNew(branchCode));
                                        }
                                        else if (count == 5)
                                        {
                                            errorMessage.Append("...\r\n");
                                        }

                                        count++;
                                    }

                                    throw new Exception(string.Format("การบันทึกข้อมูลไม่สำเร็จที่ระบบ CSM \r\n Error Message: ข้อมูลที่ไม่สามารถบันทึกรายการได้ เนื่องจากไม่พบ \r\n{0} ในฐานข้อมูล", errorMessage));
                                }

                                throw new Exception(string.Format("{0} \r\nError Message : {1}", "การบันทึกข้อมูลไม่สำเร็จที่ ระบบ CSM", !string.IsNullOrEmpty(response.StatusResponse.Description) ? response.StatusResponse.Description : string.Empty));
                            }
                        }
                        catch (Exception wsex)
                        {
                            _log.Error("===== [End] Call WS Submit Staff Data to CSM: InsertOrUpdateBranchCalendar (FAIL with Exception) =====", wsex);
                            _log.Error("===== [START] FAIL with Exception =====");
                            _log.Error("ErrorMessage=" + (!string.IsNullOrEmpty(wsex.ToString()) ? wsex.ToString() : "การบันทึกข้อมูลไม่สำเร็จเนื่องจากไม่สามารถเชื่อมต่อระบบ CSM"));
                            _log.Error("===== [END] FAIL with Exception =====");
                            if (!isConnectWsSuccess)
                            {
                                throw new Exception("การบันทึกข้อมูลไม่สำเร็จเนื่องจากไม่สามารถเชื่อมต่อระบบ CSM");
                            }
                            else
                            {
                                mpePopup.Show();
                                throw wsex;
                            }
                        }
                    }

                    if (cbEdit.Checked)
                    {
                        CalendarBranchBiz.UpdateData(tdmHolidayDatePopup.DateValue, txtHolidayDescPopup.Text.Trim(), GetSelectedBranchCode(), HttpContext.Current.User.Identity.Name);
                    }
                    else
                    {
                        CalendarBranchBiz.InsertData(tdmHolidayDatePopup.DateValue, txtHolidayDescPopup.Text.Trim(), GetSelectedBranchCode(), HttpContext.Current.User.Identity.Name);
                    }

                    AppUtil.ClientAlert(Page, "บันทึกข้อมูลเรียบร้อย");

                    ClearPopupControl();
                    mpePopup.Hide();

                    DoSearchCalendarBranch(0);
                }
                else
                {
                    mpePopup.Show();
                }
            }
            catch (Exception ex)
            {
                string message = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                _log.Error(message);
                AppUtil.ClientAlert(Page, message);
            }
        }
Exemple #4
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
            });
        }
Exemple #5
0
        public UpdateBranchCalendarResponse UpdateBranchCalendar(UpdateBranchCalendarRequest request)
        {
            try
            {
                #region == Validate Require Field ==

                if (string.IsNullOrEmpty(request.HolidayDesc))
                {
                    return(new UpdateBranchCalendarResponse()
                    {
                        IsSuccess = false,
                        ErrorCode = "2",
                        ErrorMessage = "ข้อมูลที่ส่งมาไม่ครบถ้วน ไม่สามารถบันทึกรายการได้ (Field=HolidateDesc)"
                    });
                }

                if (request.UpdateMode != 1 && request.UpdateMode != 2)
                {
                    return(new UpdateBranchCalendarResponse()
                    {
                        IsSuccess = false,
                        ErrorCode = "3",
                        ErrorMessage = "ข้อมูลที่ไม่สามารถบันทึกรายการได้ เนื่องจากข้อมูลที่ส่งมาอยู่ในรูปแบบไม่ถูกต้อง (UpdateMode ต้องมีค่า 1 (Delete and Insert) หรือ 2 (Merge) เท่านั้น)"
                    });
                }

                #endregion

                #region == Validate Code ==

                var branchDataAccess = new BranchDataAccess(_context);

                var branchCodes = request.BranchCodeList;
                var branchIds   = new List <int>();

                if (request.BranchCodeList != null)
                {
                    foreach (var code in branchCodes)
                    {
                        var branchId = branchDataAccess.GetBranchIdByBranchCode(code);
                        if (branchId == null)
                        {
                            return(new UpdateBranchCalendarResponse
                            {
                                IsSuccess = false,
                                ErrorCode = "4",
                                ErrorMessage = string.Format(CultureInfo.InvariantCulture, "ข้อมูลที่ไม่สามารถบันทึกรายการได้ เนื่องจากไม่พบ Branch Code ในฐานข้อมูล (Code={0})", code),
                            });
                        }
                        branchIds.Add(branchId.Value);
                    }
                }
                else
                {
                    request.BranchCodeList = new List <string>();
                }

                #endregion

                return(branchDataAccess.UpdateBranchCalendar(request, branchIds));
            }
            catch (Exception ex)
            {
                return(new UpdateBranchCalendarResponse()
                {
                    IsSuccess = false,
                    ErrorCode = "1",
                    ErrorMessage = ex.Message
                });
            }
        }
Exemple #6
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,
            });
        }
Exemple #7
0
        public UpdateBranchCalendarResponse UpdateBranchCalendar(UpdateBranchCalendarRequest request)
        {
            IBranchFacade facade = new BranchFacade();

            return(facade.UpdateBranchCalendar(request));
        }