public CreateBranchResponse InsertOrUpdateBranch(InsertOrUpdateBranchRequest request) { ThreadContext.Properties["EventClass"] = ApplicationHelpers.GetCurrentMethod(1); ThreadContext.Properties["RemoteAddress"] = ApplicationHelpers.GetClientIP(); _branchFacade = new BranchFacade(); var response = _branchFacade.InsertOrUpdateBranch(request); return(response); }
public CreateBranchResponse InsertOrUpdateBranch(InsertOrUpdateBranchRequest request) { var stopwatch = System.Diagnostics.Stopwatch.StartNew(); CreateBranchResponse response = new CreateBranchResponse(); Logger.Info(_logMsg.Clear().SetPrefixMsg("Call BranchService.InsertOrUpdateBranch").ToInputLogString()); Logger.Debug("I:--START--:--BranchService.InsertOrUpdateBranch--"); 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(); #region == Validate Require Field == if (!valid) { response.StatusResponse = new StatusResponse() { ErrorCode = Constants.ErrorCode.CSMBranch001, Status = Constants.StatusResponse.Failed, Description = "Bad Request, the header is not valid" }; return(response); } else { if (string.IsNullOrEmpty(request.BranchCode)) { return(GetReturnErrorRequireField("BranchCode", response)); } if (string.IsNullOrEmpty(request.BranchName)) { return(GetReturnErrorRequireField("BranchName", response)); } if (string.IsNullOrEmpty(request.ChannelCode)) { return(GetReturnErrorRequireField("ChannelCode", response)); } if (request.StartTimeHour < 0 || request.StartTimeHour > 23) { return(GetReturnErrorInvalidFormat("StartTimeHour", "ต้องมีค่าระหว่าง 0 ถึง 23", "5", response)); } if (request.StartTimeMinute < 0 || request.StartTimeMinute > 59) { return(GetReturnErrorInvalidFormat("StartTimeHour", "ต้องมีค่าระหว่าง 0 ถึง 59", "5", response)); } if (request.EndTimeHour < 0 || request.EndTimeHour > 23) { return(GetReturnErrorInvalidFormat("EndTimeHour", "ต้องมีค่าระหว่าง 0 ถึง 23", "5", response)); } if (request.EndTimeMinute < 0 || request.EndTimeMinute > 59) { return(GetReturnErrorInvalidFormat("EndTimeHour", "ต้องมีค่าระหว่าง 0 ถึง 59", "5", response)); } if (request.Status != 0 && request.Status != 1) { return(GetReturnErrorInvalidFormat("Status", "ต้องมีค่าระหว่าง 0 ถึง 1", "5", response)); } } #endregion #region == Validate Code == var channelDataAccess = new ChannelDataAccess(_context); int?channelId = channelDataAccess.GetChannelIdByChannelCode(request.ChannelCode); if (!channelId.HasValue) { response.StatusResponse = new StatusResponse() { ErrorCode = Constants.ErrorCode.CSMBranch003, Status = Constants.StatusResponse.Failed, Description = "Fail to save branch:\r\nไม่พบ Channel Code ในฐานข้อมูล CSM" }; return(response); } var branchDataAccess = new BranchDataAccess(_context); int?upperBranchId = null; if (!string.IsNullOrEmpty(request.UpperBranchCode)) { upperBranchId = branchDataAccess.GetBranchIdByBranchCode(request.UpperBranchCode); if (!upperBranchId.HasValue) { response.StatusResponse = new StatusResponse() { ErrorCode = Constants.ErrorCode.CSMBranch003, Status = Constants.StatusResponse.Failed, Description = "Fail to save branch:\r\nไม่พบ Upper Branch Code ในฐานข้อมูล CSM" }; return(response); } } #endregion var result = branchDataAccess.InsertOrUpdateBranch(request, channelId.Value, upperBranchId); if (result.IsSuccess) { response.StatusResponse = new StatusResponse { ErrorCode = string.Empty, Status = Constants.StatusResponse.Success, Description = "Save successful" }; AppLog.AuditLog(auditLog, LogStatus.Success, response.StatusResponse.Description); } else { response.StatusResponse = new StatusResponse { ErrorCode = Constants.ErrorCode.CSMBranch003, 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; var isShowException = false; //check recursive branch if (!BranchBiz.CheckRecurviceBranch(txtBranchCodeIdPopup.Text.Trim(), cmbUpperBranchPopup.SelectedItem.Value)) { isShowException = true; throw new Exception("SLM : การบันทึกข้อมูลไม่สำเร็จเนื่องจากพบ Recursive Upper Branch"); } //check duplicate name , code if (cbEdit.Checked) { //edit if (!BranchBiz.CheckDuplicateBranchNameForEdit(txtBranchCodeIdPopup.Text.Trim(), txtBranchNamePopup.Text.Trim())) { isShowException = true; throw new Exception(txtBranchNamePopup.Text.Trim() + " มีในระบบแล้ว"); } } else { if (!BranchBiz.CheckDuplicateBranchCode(txtBranchCodePopup.Text.Trim())) { isShowException = true; throw new Exception("SLM : รหัสสาขา " + txtBranchCodePopup.Text.Trim() + " มีในระบบแล้ว"); } if (!BranchBiz.CheckDuplicateBranchName(txtBranchNamePopup.Text.Trim())) { isShowException = true; throw new Exception("SLM : " + txtBranchNamePopup.Text.Trim() + " มีในระบบแล้ว"); } } if (AppConstant.CSMServiceEnableSyncBranch) { try { //send data to webservice var insertOrUpdateBranchRequest = new InsertOrUpdateBranchRequest(); insertOrUpdateBranchRequest.Header = new WebServiceHeader(); insertOrUpdateBranchRequest.Header.service_name = "CSMBranchService"; insertOrUpdateBranchRequest.Header.user_name = "SLM"; insertOrUpdateBranchRequest.Header.system_code = "SLM"; insertOrUpdateBranchRequest.Header.password = "******"; insertOrUpdateBranchRequest.Header.command = "InsertOrUpdateBranch"; insertOrUpdateBranchRequest.BranchCode = txtBranchCodePopup.Text.Trim(); insertOrUpdateBranchRequest.BranchName = txtBranchNamePopup.Text.Trim(); insertOrUpdateBranchRequest.Status = Convert.ToInt16(rbActive.Checked); insertOrUpdateBranchRequest.ChannelCode = cmbChannelPopup.SelectedItem.Value; // insertOrUpdateBranchRequest.UpperBranchCode = cmbUpperBranchPopup.SelectedItem.Value; insertOrUpdateBranchRequest.UpperBranchCode = BranchBiz.GetBranchCodeNew(cmbUpperBranchPopup.SelectedItem.Value); insertOrUpdateBranchRequest.StartTimeHour = Convert.ToInt32(txtWorkStartHourPopup.Text.Trim()); insertOrUpdateBranchRequest.StartTimeMinute = Convert.ToInt32(txtWorkStartMinPopup.Text.Trim()); insertOrUpdateBranchRequest.EndTimeHour = Convert.ToInt32(txtWorkEndHourPopup.Text.Trim()); insertOrUpdateBranchRequest.EndTimeMinute = Convert.ToInt32(txtWorkEndMinPopup.Text.Trim()); insertOrUpdateBranchRequest.ActionUsername = HttpContext.Current.User.Identity.Name; insertOrUpdateBranchRequest.HomeNo = txtAddressNo.Text; insertOrUpdateBranchRequest.Moo = txtMoo.Text; insertOrUpdateBranchRequest.Building = txtBuilding.Text; insertOrUpdateBranchRequest.Floor = txtFloor.Text; insertOrUpdateBranchRequest.Soi = txtLane.Text; insertOrUpdateBranchRequest.Street = txtStreet.Text; insertOrUpdateBranchRequest.Province = cmbProvince.SelectedValue; insertOrUpdateBranchRequest.Amphur = cmbAmphur.SelectedValue; insertOrUpdateBranchRequest.Tambol = cmbTambol.SelectedValue; insertOrUpdateBranchRequest.Zipcode = txtZipCode.Text; insertOrUpdateBranchRequest.Command = cbEdit.Checked; //Logging _log.Info("===== [Start] Call WS Submit Staff Data to CSM: InsertOrUpdateBranch ====="); _log.Debug("===== [START] Request Parameter ====="); _log.Debug("BranchCode=" + insertOrUpdateBranchRequest.BranchCode); _log.Debug("BranchName=" + insertOrUpdateBranchRequest.BranchName); _log.Debug("Status=" + insertOrUpdateBranchRequest.Status); _log.Debug("ChannelCode=" + insertOrUpdateBranchRequest.ChannelCode); _log.Debug("UpperBranchCode=" + insertOrUpdateBranchRequest.UpperBranchCode); _log.Debug("StartTimeHour=" + insertOrUpdateBranchRequest.StartTimeHour); _log.Debug("StartTimeMinute=" + insertOrUpdateBranchRequest.StartTimeMinute); _log.Debug("EndTimeHour=" + insertOrUpdateBranchRequest.EndTimeHour); _log.Debug("EndTimeMinute=" + insertOrUpdateBranchRequest.EndTimeMinute); _log.Debug("ActionUsername="******"HomeNo=" + insertOrUpdateBranchRequest.HomeNo); _log.Debug("Moo=" + insertOrUpdateBranchRequest.Moo); _log.Debug("Building=" + insertOrUpdateBranchRequest.Building); _log.Debug("Floor=" + insertOrUpdateBranchRequest.Floor); _log.Debug("Soi=" + insertOrUpdateBranchRequest.Soi); _log.Debug("Street=" + insertOrUpdateBranchRequest.Street); _log.Debug("Province=" + insertOrUpdateBranchRequest.Province); _log.Debug("Amphur=" + insertOrUpdateBranchRequest.Amphur); _log.Debug("Tambol=" + insertOrUpdateBranchRequest.Tambol); _log.Debug("Zipcode=" + insertOrUpdateBranchRequest.Zipcode); _log.Debug("===== [END] Request Parameter ====="); var start = DateTime.Now; _log.DebugFormat("Start Call InsertOrUpdateBranch at {0:dd/MM/yyyy HH:mm:ss}", start); var csmBranchService = new CSMBranchServiceClient(); var response = csmBranchService.InsertOrUpdateBranch(insertOrUpdateBranchRequest); isConnectWsSuccess = true; var stop = DateTime.Now; _log.DebugFormat("End Call InsertOrUpdateBranch 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: InsertOrUpdateBranch (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: InsertOrUpdateBranch (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") { 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: InsertOrUpdateBranch (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 (isShowException) { throw wsex; } if (!isConnectWsSuccess) { throw new Exception("การบันทึกข้อมูลไม่สำเร็จเนื่องจากไม่สามารถเชื่อมต่อระบบ CSM"); } else { throw wsex; } } } if (cbEdit.Checked) { BranchBiz.UpdateData(txtBranchCodeOldPopup.Text.Trim(), txtBranchCodePopup.Text.Trim(), txtBranchNamePopup.Text.Trim(), txtWorkStartHourPopup.Text.Trim(), txtWorkStartMinPopup.Text.Trim(), txtWorkEndHourPopup.Text.Trim(), txtWorkEndMinPopup.Text.Trim(), cmbUpperBranchPopup.SelectedItem.Value, cmbChannelPopup.SelectedItem.Value, rbActive.Checked, HttpContext.Current.User.Identity.Name , txtAddressNo.Text, txtMoo.Text, txtBuilding.Text, txtFloor.Text, txtLane.Text, txtStreet.Text, AppUtil.SafeInt(cmbTambol.SelectedValue), AppUtil.SafeInt(cmbAmphur.SelectedValue), AppUtil.SafeInt(cmbProvince.SelectedValue), txtZipCode.Text); } else { string internalBranchCode = BranchBiz.InsertData(txtBranchCodePopup.Text.Trim(), txtBranchNamePopup.Text.Trim(), txtWorkStartHourPopup.Text.Trim(), txtWorkStartMinPopup.Text.Trim(), txtWorkEndHourPopup.Text.Trim(), txtWorkEndMinPopup.Text.Trim(), cmbUpperBranchPopup.SelectedItem.Value, cmbChannelPopup.SelectedItem.Value, rbActive.Checked, HttpContext.Current.User.Identity.Name , txtAddressNo.Text, txtMoo.Text, txtBuilding.Text, txtFloor.Text, txtLane.Text, txtStreet.Text, AppUtil.SafeInt(cmbTambol.SelectedValue), AppUtil.SafeInt(cmbAmphur.SelectedValue), AppUtil.SafeInt(cmbProvince.SelectedValue), txtZipCode.Text); InsertBranchRole(internalBranchCode); } AppUtil.ClientAlert(Page, "บันทึกข้อมูลเรียบร้อย"); ClearPopupControl(); mpePopup.Hide(); DoSearchBranch(0); } else { mpePopup.Show(); } } catch (Exception ex) { mpePopup.Show(); string message = ex.InnerException != null ? ex.InnerException.Message : ex.Message; _log.Error(message); AppUtil.ClientAlert(Page, message); } }
public InsertOrUpdateBranchResponse InsertOrUpdateBranch(InsertOrUpdateBranchRequest request, int channelId, int?upperBranchId) { _context.Configuration.AutoDetectChangesEnabled = false; var response = new InsertOrUpdateBranchResponse(); Logger.Info(_logMsg.Clear().SetPrefixMsg("Insert or Update Branch").Add("BranchCode", request.BranchCode) .Add("BranchName", request.BranchName).Add("ChannelId", channelId).Add("UpperBranchId", upperBranchId).ToInputLogString()); try { #region "Comment out" // var result = new InsertOrUpdateBranchResponse(); //// var dbBranch = _context.TB_R_BRANCH.Where(x => x.BRANCH_CODE.Trim().ToUpper() == request.BranchCode.Trim().ToUpper()).FirstOrDefault(); // TB_R_BRANCH dbBranch; //// if (dbBranch == null) // if (!request.Command) // { // //add mode // dbBranch = new TB_R_BRANCH(); // result.IsNewBranch = true; // //check duplicate code // var count = _context.TB_R_BRANCH.Count(p => p.BRANCH_CODE == request.BranchCode); // if (count > 0) // { // result.IsSuccess = false; // result.ErrorCode = "6"; // result.ErrorMessage = string.Format("CSM : รหัสสาขา {0} มีในระบบแล้ว", request.BranchCode); // return result; // } // //check duplicate name // count = _context.TB_R_BRANCH.Count(p => p.BRANCH_NAME == request.BranchName); // if (count > 0) // { // result.IsSuccess = false; // result.ErrorCode = "6"; // result.ErrorMessage = string.Format("CSM : {0} มีในระบบ", request.BranchName); // return result; // } // } // else // { // //edit mode // result.IsNewBranch = false; // dbBranch = _context.TB_R_BRANCH.FirstOrDefault(x => x.BRANCH_CODE.Trim().ToUpper() == request.BranchCode.Trim().ToUpper()); // #region == Validate Branch Data == // if (dbBranch == null) // { // //create new branch at slm // dbBranch = new TB_R_BRANCH(); // result.IsNewBranch = true; // } // else // { // // IF (Change Branch) Or (Change Status 1 to 0) // if (dbBranch.STATUS == 1 && request.Status == 0) // { // var count = _context.TB_M_POOL_BRANCH.Count(x => x.BRANCH_ID == dbBranch.BRANCH_ID && x.STATUS == 1); // if (count > 0) // { // result.IsSuccess = false; // result.ErrorCode = "6"; // result.ErrorMessage = "ไม่สามารถอัพเดตข้อมูลเป็นปิดสาขาได้ เนื่องจาก มีการผูกสาขากับ Communication Pool"; // return result; // } // } // //duplicate code and name // var countDuplicate = _context.TB_R_BRANCH.Count(p => p.BRANCH_NAME == request.BranchName && p.BRANCH_CODE != request.BranchCode); // if (countDuplicate > 0) // { // result.IsSuccess = false; // result.ErrorCode = "6"; // result.ErrorMessage = string.Format("{0} มีในระบบแล้ว", request.BranchName); // return result; // } // //check recursive upper branch // if (!CheckRecursiveBranch(dbBranch.BRANCH_CODE, upperBranchId)) // { // result.IsSuccess = false; // result.ErrorCode = "6"; // result.ErrorMessage = "CSM : การบันทึกข้อมูลไม่สำเร็จเนื่องจากพบ Recursive Upper Branch"; // return result; // } // } // #endregion // } // dbBranch.CHANNEL_ID = channelId; // dbBranch.BRANCH_CODE = ValueOrDefault(request.BranchCode); // dbBranch.BRANCH_NAME = ValueOrDefault(request.BranchName); // dbBranch.STATUS = Convert.ToInt16(request.Status); // dbBranch.UPPER_BRANCH_ID = upperBranchId; // dbBranch.START_TIME_HOUR = Convert.ToInt16(request.StartTimeHour); // dbBranch.START_TIME_MINUTE = Convert.ToInt16(request.StartTimeMinute); // dbBranch.END_TIME_HOUR = Convert.ToInt16(request.EndTimeHour); // dbBranch.END_TIME_MINUTE = Convert.ToInt16(request.EndTimeMinute); // dbBranch.BRANCH_HOME_NO = ValueOrDefault(request.HomeNo); // dbBranch.BRANCH_MOO = ValueOrDefault(request.Moo); // dbBranch.BRANCH_BUILDING = ValueOrDefault(request.Building); // dbBranch.BRANCH_FLOOR = ValueOrDefault(request.Floor); // dbBranch.BRANCH_SOI = ValueOrDefault(request.Soi); // dbBranch.BRANCH_STREET = ValueOrDefault(request.Street); // dbBranch.BRANCH_PROVINCE = ValueOrDefault(request.Province); // dbBranch.BRANCH_AMPHUR = ValueOrDefault(request.Amphur); // dbBranch.BRANCH_TAMBOL = ValueOrDefault(request.Tambol); // dbBranch.BRANCH_ZIPCODE = ValueOrDefault(request.Zipcode); // var now = DateTime.Now; // if (result.IsNewBranch) // { // dbBranch.CREATE_USER = ValueOrDefault(request.ActionUsername); // dbBranch.UPDATE_USER = ValueOrDefault(request.ActionUsername); // dbBranch.CREATE_DATE = now; // dbBranch.UPDATE_DATE = now; // _context.TB_R_BRANCH.Add(dbBranch); // } // else // { // dbBranch.UPDATE_USER = ValueOrDefault(request.ActionUsername); // dbBranch.UPDATE_DATE = DateTime.Now; // SetEntryStateModified(dbBranch); // } // this.Save(); // result.IsSuccess = true; // return result; #endregion string logMsg; var today = DateTime.Now; string branchCode = request.BranchCode.NullSafeTrim(); var dbBranch = _context.TB_R_BRANCH.FirstOrDefault(x => x.BRANCH_CODE == branchCode); bool isNewBranch = (dbBranch == null); if (isNewBranch) { dbBranch = new TB_R_BRANCH(); } else { // เช็คเงื่อนไขการปิดสาขา if (dbBranch.STATUS == 1 && request.Status == 0) { if (_context.TB_M_POOL_BRANCH.Any(x => x.BRANCH_ID == dbBranch.BRANCH_ID && x.STATUS == Constants.ApplicationStatus.Active)) { response.IsSuccess = false; response.ErrorCode = "6"; response.ErrorMessage = "ไม่สามารถอัพเดตข้อมูลเป็นปิดสาขาได้ เนื่องจาก มีการผูกสาขากับ Communication Pool"; return(response); } } // Check recursive upper branch if (!CheckRecursiveBranch(dbBranch.BRANCH_CODE, upperBranchId)) { response.IsSuccess = false; response.ErrorCode = "6"; response.ErrorMessage = "CSM : การบันทึกข้อมูลไม่สำเร็จเนื่องจากพบ Recursive Upper Branch"; return(response); } } dbBranch.CHANNEL_ID = channelId; dbBranch.BRANCH_CODE = branchCode; dbBranch.BRANCH_NAME = request.BranchName.NullSafeTrim(); dbBranch.STATUS = request.Status; dbBranch.UPPER_BRANCH_ID = upperBranchId; dbBranch.START_TIME_HOUR = (short)request.StartTimeHour; dbBranch.START_TIME_MINUTE = (short)request.StartTimeMinute; dbBranch.END_TIME_HOUR = (short)request.EndTimeHour; dbBranch.END_TIME_MINUTE = (short)request.EndTimeMinute; dbBranch.BRANCH_HOME_NO = request.HomeNo.NullSafeTrim(); dbBranch.BRANCH_MOO = request.Moo.NullSafeTrim(); dbBranch.BRANCH_BUILDING = request.Building.NullSafeTrim(); dbBranch.BRANCH_FLOOR = request.Floor.NullSafeTrim(); dbBranch.BRANCH_SOI = request.Soi.NullSafeTrim(); dbBranch.BRANCH_STREET = request.Street.NullSafeTrim(); dbBranch.BRANCH_PROVINCE = request.Province.NullSafeTrim(); dbBranch.BRANCH_AMPHUR = request.Amphur.NullSafeTrim(); dbBranch.BRANCH_TAMBOL = request.Tambol.NullSafeTrim(); dbBranch.BRANCH_ZIPCODE = request.Zipcode.NullSafeTrim(); dbBranch.UPDATE_USER = request.ActionUsername.NullSafeTrim(); dbBranch.UPDATE_DATE = today; if (isNewBranch) { logMsg = "Insert Branch"; dbBranch.CREATE_USER = request.ActionUsername.NullSafeTrim(); dbBranch.CREATE_DATE = today; _context.TB_R_BRANCH.Add(dbBranch); } else { logMsg = "Update Branch"; SetEntryStateModified(dbBranch); } response.IsSuccess = (Save() > 0); if (response.IsSuccess) { Logger.Info(_logMsg.Clear().SetPrefixMsg(logMsg).ToSuccessLogString()); } else { Logger.Info(_logMsg.Clear().SetPrefixMsg(logMsg).Add("Error Message", "Failed to save data").ToFailLogString()); } return(response); } catch (Exception ex) { Logger.Error("Exception occur:\n", ex); Logger.Info(_logMsg.Clear().SetPrefixMsg("Insert or Update Branch").Add("Error Message", ex.Message).ToFailLogString()); response = new InsertOrUpdateBranchResponse { IsSuccess = false, ErrorCode = "1", ErrorMessage = ex.Message, }; return(response); } finally { _context.Configuration.AutoDetectChangesEnabled = false; } }
public InsertOrUpdateBranchResponse InsertOrUpdateBranch(InsertOrUpdateBranchRequest request) { try { #region == Validate Require Field == if (string.IsNullOrEmpty(request.BranchCode)) { return(GetReturnErrorRequireField("BranchCode")); } if (string.IsNullOrEmpty(request.BranchName)) { return(GetReturnErrorRequireField("BranchName")); } if (string.IsNullOrEmpty(request.ChannelCode)) { return(GetReturnErrorRequireField("ChannelCode")); } if (request.StartTimeHour < 0 || request.StartTimeHour > 23) { return(GetReturnErrorInvalidFormat("StartTimeHour", "ต้องมีค่าระหว่าง 0 ถึง 23", "5")); } if (request.StartTimeMinute < 0 || request.StartTimeMinute > 59) { return(GetReturnErrorInvalidFormat("StartTimeHour", "ต้องมีค่าระหว่าง 0 ถึง 59", "5")); } if (request.EndTimeHour < 0 || request.EndTimeHour > 23) { return(GetReturnErrorInvalidFormat("EndTimeHour", "ต้องมีค่าระหว่าง 0 ถึง 23", "5")); } if (request.EndTimeMinute < 0 || request.EndTimeMinute > 59) { return(GetReturnErrorInvalidFormat("EndTimeHour", "ต้องมีค่าระหว่าง 0 ถึง 59", "5")); } if (request.Status != 0 && request.Status != 1) { return(GetReturnErrorInvalidFormat("Status", "ต้องมีค่าระหว่าง 0 ถึง 1", "5")); } #endregion #region == Validate Code == var channelDataAccess = new ChannelDataAccess(_context); int?channelId = channelDataAccess.GetChannelIdByChannelCode(request.ChannelCode); if (!channelId.HasValue) { return(new InsertOrUpdateBranchResponse() { IsSuccess = false, ErrorCode = "3", ErrorMessage = "ไม่พบ Channel Code ในฐานข้อมูล CSM", }); } var branchDataAccess = new BranchDataAccess(_context); int?upperBranchId = null; if (!string.IsNullOrEmpty(request.UpperBranchCode)) { upperBranchId = branchDataAccess.GetBranchIdByBranchCode(request.UpperBranchCode); if (!upperBranchId.HasValue) { return(new InsertOrUpdateBranchResponse() { IsSuccess = false, ErrorCode = "4", ErrorMessage = "ไม่พบ Upper Branch Code ในฐานข้อมูล CSM", }); } } #endregion return(branchDataAccess.InsertOrUpdateBranch(request, channelId.Value, upperBranchId)); } catch (Exception ex) { return(new InsertOrUpdateBranchResponse() { IsSuccess = false, ErrorCode = "1", ErrorMessage = ex.Message }); } }
public InsertOrUpdateBranchResponse InsertOrUpdateBranch(InsertOrUpdateBranchRequest request, int channelId, int?upperBranchId) { _context.Configuration.AutoDetectChangesEnabled = false; try { var result = new InsertOrUpdateBranchResponse(); var dbBranch = _context.TB_R_BRANCH.Where(x => x.BRANCH_CODE.Trim().ToUpper() == request.BranchCode.Trim().ToUpper()).FirstOrDefault(); if (dbBranch == null) { dbBranch = new TB_R_BRANCH(); result.IsNewBranch = true; } else { result.IsNewBranch = false; // IF (Change Branch) Or (Change Status 1 to 0) if (dbBranch.STATUS == 1 && request.Status == 0) { #region == Validate Relation Between Branch to Pool == var count = _context.TB_M_POOL_BRANCH.Count(x => x.BRANCH_ID == dbBranch.BRANCH_ID && x.STATUS == 1); if (count > 0) { result.IsSuccess = false; result.ErrorCode = "6"; result.ErrorMessage = "ไม่สามารถอัพเดตข้อมูลเป็นปิดสาขาได้ เนื่องจาก มีการผูกสาขากับ Communication Pool"; return(result); } #endregion } } dbBranch.CHANNEL_ID = channelId; dbBranch.BRANCH_CODE = ValueOrDefault(request.BranchCode); dbBranch.BRANCH_NAME = ValueOrDefault(request.BranchName); dbBranch.STATUS = Convert.ToInt16(request.Status); dbBranch.UPPER_BRANCH_ID = upperBranchId; dbBranch.START_TIME_HOUR = Convert.ToInt16(request.StartTimeHour); dbBranch.START_TIME_MINUTE = Convert.ToInt16(request.StartTimeMinute); dbBranch.END_TIME_HOUR = Convert.ToInt16(request.EndTimeHour); dbBranch.END_TIME_MINUTE = Convert.ToInt16(request.EndTimeMinute); dbBranch.BRANCH_HOME_NO = ValueOrDefault(request.HomeNo); dbBranch.BRANCH_MOO = ValueOrDefault(request.Moo); dbBranch.BRANCH_BUILDING = ValueOrDefault(request.Building); dbBranch.BRANCH_FLOOR = ValueOrDefault(request.Floor); dbBranch.BRANCH_SOI = ValueOrDefault(request.Soi); dbBranch.BRANCH_STREET = ValueOrDefault(request.Street); dbBranch.BRANCH_PROVINCE = ValueOrDefault(request.Province); dbBranch.BRANCH_AMPHUR = ValueOrDefault(request.Amphur); dbBranch.BRANCH_TAMBOL = ValueOrDefault(request.Tambol); dbBranch.BRANCH_ZIPCODE = ValueOrDefault(request.Zipcode); var now = DateTime.Now; if (result.IsNewBranch) { dbBranch.CREATE_USER = ValueOrDefault(request.ActionUsername); dbBranch.UPDATE_USER = ValueOrDefault(request.ActionUsername); dbBranch.CREATE_DATE = now; dbBranch.UPDATE_DATE = now; _context.TB_R_BRANCH.Add(dbBranch); } else { dbBranch.UPDATE_USER = ValueOrDefault(request.ActionUsername); dbBranch.UPDATE_DATE = DateTime.Now; SetEntryStateModified(dbBranch); } this.Save(); result.IsSuccess = true; return(result); } catch (Exception ex) { Logger.Error("Exception occur:\n", ex); return(new InsertOrUpdateBranchResponse() { IsSuccess = false, ErrorCode = "1", ErrorMessage = ex.Message, }); } finally { _context.Configuration.AutoDetectChangesEnabled = false; } }
public InsertOrUpdateBranchResponse InsertOrUpdateBranch(InsertOrUpdateBranchRequest request) { IBranchFacade facade = new BranchFacade(); return(facade.InsertOrUpdateBranch(request)); }