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); } }