public UpdateCalendarResponse UpdateBranchCalendar(UpdateBranchCalendarRequest request) { ThreadContext.Properties["EventClass"] = ApplicationHelpers.GetCurrentMethod(1); ThreadContext.Properties["RemoteAddress"] = ApplicationHelpers.GetClientIP(); _branchFacade = new BranchFacade(); return(_branchFacade.UpdateBranchCalendar(request)); }
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); }
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); } }
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) { 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 }); } }
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, }); }
public UpdateBranchCalendarResponse UpdateBranchCalendar(UpdateBranchCalendarRequest request) { IBranchFacade facade = new BranchFacade(); return(facade.UpdateBranchCalendar(request)); }