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); }
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); }
private Ticket SearchLead(AuditLogEntity auditLog, string cardNo) { var stopwatch = System.Diagnostics.Stopwatch.StartNew(); Logger.Debug("I:--START--:--COCService.SearchLead--"); try { Header profile = GetHeaderByServiceName <Header>(Constants.ServiceName.SearchLead); COC.ServiceRequest reqLead = new COC.ServiceRequest(); reqLead.RequestHeader = new COC.Header { ChannelID = profile.channel_id, Username = profile.user_name, Password = profile.password, System = profile.system_code }; DataSet ds = ReadSearchLeadXml(); DataTable dt = ds.Tables[0]; dt.Rows[0]["cid"] = cardNo; dt.Rows[0]["firstname"] = ""; dt.Rows[0]["lastname"] = ""; dt.Rows[0]["status"] = ""; dt.Rows[0]["productGroupId"] = ""; dt.Rows[0]["productId"] = ""; dt.Rows[0]["maxRecord"] = "30"; reqLead.RequestXml = ds.ToXml(); COC.ServiceResponse resLead = null; #region "Call Service" string flgCatchErrorCode = string.Empty; // Avoid error codes _commonFacade = new CommonFacade(); List <string> exceptionErrorCodes = _commonFacade.GetExceptionErrorCodes(Constants.SystemName.COC, Constants.ServiceName.SearchLead); try { Retry.Do(() => { flgCatchErrorCode = string.Empty; Logger.DebugFormat("-- XMLRequest --\n{0}", reqLead.SerializeObject()); using (var client = new COC.ServiceClient()) { resLead = ((COC.IService)client).SearchLead(reqLead); if (client != null) { ((ICommunicationObject)client).Abort(); } } }, TimeSpan.FromSeconds(WebConfig.GetServiceRetryInterval()), WebConfig.GetServiceRetryNo()); } catch (AggregateException aex) { aex.Handle((x) => { if (x is EndpointNotFoundException) { flgCatchErrorCode = Constants.ErrorCode.CSM0002; Logger.Error("EndpointNotFoundException occur:\n", x); return(true); } else if (x is CommunicationException) { flgCatchErrorCode = Constants.ErrorCode.CSM0002; Logger.Error("CommunicationException occur:\n", x); return(true); } else if (x is TimeoutException) { flgCatchErrorCode = Constants.ErrorCode.CSM0001; Logger.Error("TimeoutException occur:\n", x); return(true); } else { flgCatchErrorCode = Constants.ErrorCode.CSM0003; Logger.Error("Exception occur:\n", x); return(true); } }); } if (!string.IsNullOrEmpty(flgCatchErrorCode)) { AppLog.AuditLog(auditLog, LogStatus.Fail, GetMessageResource(flgCatchErrorCode, true)); throw new CustomException(GetMessageResource(flgCatchErrorCode, false)); } #endregion if (resLead != null) { Logger.DebugFormat("-- XMLResponse --\n{0}", resLead.SerializeObject()); var xdoc = XDocument.Parse(resLead.ResponseXml); Ticket ticket = (xdoc.Descendants("ticket") .Select(x => new Ticket { TicketId = x.Attribute("id").Value, ResponseCode = x.Element("responseCode").Value, ResponseMessage = x.Element("responseMessage").Value, StrResponseDate = x.Element("responseDate").Value, StrResponseTime = x.Element("responseTime").Value, TotalLeads = x.Element("totalLeads") == null ? string.Empty : x.Element("totalLeads").Value })).FirstOrDefault(); if (exceptionErrorCodes != null && exceptionErrorCodes.Contains(ticket.ResponseCode)) { ticket.ResponseCode = Constants.TicketResponse.COC_Success; } if (Constants.TicketResponse.COC_Success.Equals(ticket.ResponseCode)) { List <TicketItem> items = null; if (xdoc.Descendants("result") != null && xdoc.Descendants("result").Count() > 0) { items = xdoc.Descendants("result") .Select(x => new TicketItem { TicketId = x.Element("ticketId").Value, CardNo = x.Element("cid").Value, FirstName = x.Element("firstname").Value, LastName = x.Element("lastname").Value, TelNo1 = x.Element("telNo1").Value, Status = x.Element("status").Value, StatusDesc = x.Element("statusDesc").Value, CampaignCode = x.Element("campaign").Value, CampaignDesc = x.Element("campaignDesc").Value, ProductGroupId = x.Element("productGroupId").Value, ProductGroupDesc = x.Element("productGroupDesc").Value, ProductId = x.Element("productId").Value, ProductDesc = x.Element("productDesc").Value, ChannelId = x.Element("channelId").Value, OwnerLead = x.Element("ownerLead").Value, OwnerLeadName = x.Element("ownerLeadName").Value, DelegateLead = x.Element("delegateLead").Value, DelegateLeadName = x.Element("delegateLeadName").Value, CreatedUser = x.Element("createdUser").Value, CreatedUserName = x.Element("createdUserName").Value, StrCreatedDate = x.Element("createdDate").Value, StrCreatedTime = x.Element("createdTime").Value, StrAssignedDate = x.Element("assignedDate").Value, StrAssignedTime = x.Element("assignedTime").Value, OwnerBranch = x.Element("ownerBranch").Value, OwnerBranchName = x.Element("ownerBranchName").Value, DelegateBranch = x.Element("delegateBranch").Value, DelegateBranchName = x.Element("delegateBranchName").Value, CreatedBranch = x.Element("createdBranch").Value, CreatedBranchName = x.Element("createdBranchName").Value }).ToList(); } ticket.Items = items; AppLog.AuditLog(auditLog, LogStatus.Success, string.Empty); return(ticket); } // Log DB AppLog.AuditLog(auditLog, LogStatus.Fail, GetMessageResource(Constants.SystemName.COC, Constants.ServiceName.SearchLead, ticket.ResponseCode, true)); throw new CustomException(GetMessageResource(Constants.SystemName.COC, Constants.ServiceName.SearchLead, ticket.ResponseCode, false)); } } finally { stopwatch.Stop(); Logger.DebugFormat("O:--Finish--:ElapsedMilliseconds/{0}", stopwatch.ElapsedMilliseconds); } return(null); }
public CreateProductMasterResponse CreateProductMaster(CreateProductMasterRequest request) { var stopwatch = System.Diagnostics.Stopwatch.StartNew(); Logger.Info(_logMsg.Clear().SetPrefixMsg("Call MasterService.CreateProductMaster").ToInputLogString()); Logger.Debug("I:--START--:--MasterService.CreateProductMaster--"); bool valid = false; _commonFacade = new CommonFacade(); CreateProductMasterResponse response = new CreateProductMasterResponse(); 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.Customer; auditLog.Action = Constants.AuditAction.CreateProductMaster; auditLog.IpAddress = ApplicationHelpers.GetClientIP(); #region "Call Validator" if (!valid) { response.StatusResponse = new StatusResponse { ErrorCode = Constants.ErrorCode.CSMProd001, Status = Constants.StatusResponse.Failed, Description = "Bad Request, the header is not valid" }; AppLog.AuditLog(auditLog, LogStatus.Fail, response.StatusResponse.Description); Logger.DebugFormat("-- XMLResponse --\n{0}", response.SerializeObject()); stopwatch.Stop(); Logger.DebugFormat("O:--Finish--:ElapsedMilliseconds/{0}", stopwatch.ElapsedMilliseconds); return(response); } else { dynamic[] results = DoValidation(request); valid = (bool)results[0]; List <ValidationResult> validationResults = (List <ValidationResult>)results[1]; if (!valid) { response.StatusResponse = new StatusResponse(); response.StatusResponse.ErrorCode = Constants.ErrorCode.CSMProd002; response.StatusResponse.Status = Constants.StatusResponse.Failed; if (validationResults != null && validationResults.Count > 0) { string msg = "Bad Request, the body is not valid:\n{0}"; response.StatusResponse.Description = string.Format(CultureInfo.InvariantCulture, msg, validationResults.Select(x => x.ErrorMessage).Aggregate((i, j) => i + Delimeter + j)); } AppLog.AuditLog(auditLog, LogStatus.Fail, response.StatusResponse.Description); Logger.DebugFormat("-- XMLResponse --\n{0}", response.SerializeObject()); stopwatch.Stop(); Logger.DebugFormat("O:--Finish--:ElapsedMilliseconds/{0}", stopwatch.ElapsedMilliseconds); return(response); } } #endregion ProductEntity product = null; CampaignServiceEntity campaign = null; ProductGroupEntity productGroup = null; if (!string.IsNullOrWhiteSpace(request.ProductGroup.Code) && !string.IsNullOrWhiteSpace(request.ProductGroup.Name)) { productGroup = new ProductGroupEntity { ProductGroupCode = request.ProductGroup.Code, ProductGroupName = request.ProductGroup.Name, IsActive = Constants.ApplicationStatus.Active.ConvertToString().Equals(request.ProductGroup.Status) ? true : false, CreateUser = request.ProductGroup.CreateUser, CreateDate = request.ProductGroup.CreateDateValue, UpdateUser = request.ProductGroup.UpdateUser, UpdateDate = request.ProductGroup.UpdateDateValue }; } if (request.Product != null && !string.IsNullOrWhiteSpace(request.Product.Code) && !string.IsNullOrWhiteSpace(request.Product.Name)) { product = new ProductEntity { ProductCode = request.Product.Code, ProductName = request.Product.Name, ProductType = request.Product.ProductType, IsActive = Constants.ApplicationStatus.Active.ConvertToString().Equals(request.Product.Status) ? true : false, CreateUser = request.Product.CreateUser, CreateDate = request.Product.CreateDateValue, UpdateUser = request.Product.UpdateUser, UpdateDate = request.Product.UpdateDateValue }; } if (request.Campaign != null && !string.IsNullOrWhiteSpace(request.Campaign.Code) && !string.IsNullOrWhiteSpace(request.Campaign.Name)) { campaign = new CampaignServiceEntity { CampaignServiceCode = request.Campaign.Code, CampaignServiceName = request.Campaign.Name, IsActive = Constants.ApplicationStatus.Active.ConvertToString().Equals(request.Campaign.Status) ? true : false, CreateUser = request.Campaign.CreateUser, CreateDate = request.Campaign.CreateDateValue, UpdateUser = request.Campaign.UpdateUser, UpdateDate = request.Campaign.UpdateDateValue }; } if (productGroup != null) { _productDataAccess = new ProductDataAccess(_context); bool success = _productDataAccess.SaveProductMaster(productGroup, product, campaign); if (success) { response.StatusResponse = new StatusResponse { ErrorCode = string.Empty, Status = Constants.StatusResponse.Success, Description = "Create successful data" }; AppLog.AuditLog(auditLog, LogStatus.Success, response.StatusResponse.Description); Logger.DebugFormat("-- XMLResponse --\n{0}", response.SerializeObject()); stopwatch.Stop(); Logger.DebugFormat("O:--Finish--:ElapsedMilliseconds/{0}", stopwatch.ElapsedMilliseconds); return(response); } } response.StatusResponse = new StatusResponse { ErrorCode = Constants.ErrorCode.CSMProd003, Status = Constants.StatusResponse.Failed, Description = "Fail to create data" }; AppLog.AuditLog(auditLog, LogStatus.Fail, response.StatusResponse.Description); Logger.DebugFormat("-- XMLResponse --\n{0}", response.SerializeObject()); stopwatch.Stop(); Logger.DebugFormat("O:--Finish--:ElapsedMilliseconds/{0}", stopwatch.ElapsedMilliseconds); return(response); }
private InquiryActivityLogResponse InquiryActivityLog(AuditLogEntity auditLog, ActivitySearchFilter searchFilter) { CAR.CASLogServiceSoapClient client = null; var stopwatch = System.Diagnostics.Stopwatch.StartNew(); Logger.Debug("I:--START--:--CARLogService.InquiryActivityLog--"); try { Header profile = GetHeaderByServiceName <Header>(Constants.ServiceName.InquiryActivityLog); var header = new CAR.LogServiceHeader { ReferenceNo = profile.reference_no, ServiceName = profile.service_name, SystemCode = profile.system_code, SecurityKey = profile.password, TransactionDateTime = DateTime.Now, }; decimal subsTypeCodeAsDecimal; try { subsTypeCodeAsDecimal = Convert.ToDecimal(searchFilter.SubsTypeCode, CultureInfo.InvariantCulture); } catch (Exception ex) { subsTypeCodeAsDecimal = 0; Logger.Error("Exception occur:\n", ex); } if (subsTypeCodeAsDecimal == 0 || string.IsNullOrEmpty(searchFilter.CardNo)) { subsTypeCodeAsDecimal = 0; searchFilter.CardNo = null; } var activitiyLogData = new CAR.InqueryActivityLogData { ActivityStartDateTime = searchFilter.ActivityStartDateTimeValue, // "2015-01-01".ParseDateTime("yyyy-MM-dd").Value ActivityEndDateTime = searchFilter.ActivityEndDateTimeValue, // "2016-06-07".ParseDateTime("yyyy-MM-dd").Value ChannelID = null, SubscriptionTypeID = searchFilter.SrOnly ? 0 : subsTypeCodeAsDecimal, // 1, SubscriptionID = searchFilter.SrOnly ? null : searchFilter.CardNo, // "3601000025739", SrID = searchFilter.SrOnly ? searchFilter.SrNo : null, // "162817263527", CampaignID = string.Empty, TypeID = 0, AreaID = 0, SubAreaID = 0 }; CAR.InqueryActivytyLogResponse resActivity = null; #region "Call Service" string flgCatchErrorCode = string.Empty; // Avoid error codes _commonFacade = new CommonFacade(); List <string> exceptionErrorCodes = _commonFacade.GetExceptionErrorCodes(Constants.SystemName.CAR, Constants.ServiceName.InquiryActivityLog); try { Retry.Do(() => { flgCatchErrorCode = string.Empty; Logger.DebugFormat("-- XMLRequest --\n{0}\n{1}", header.SerializeObject(), activitiyLogData.SerializeObject()); client = new CAR.CASLogServiceSoapClient("CASLogServiceSoap"); resActivity = client.InquiryActivityLog(header, activitiyLogData); if (client != null) { ((ICommunicationObject)client).Abort(); } }, TimeSpan.FromSeconds(WebConfig.GetServiceRetryInterval()), WebConfig.GetServiceRetryNo()); } catch (AggregateException aex) { aex.Handle((x) => { if (x is EndpointNotFoundException) { flgCatchErrorCode = Constants.ErrorCode.CSM0002; Logger.Error("EndpointNotFoundException occur:\n", x); return(true); } else if (x is CommunicationException) { flgCatchErrorCode = Constants.ErrorCode.CSM0002; Logger.Error("CommunicationException occur:\n", x); return(true); } else if (x is TimeoutException) { flgCatchErrorCode = Constants.ErrorCode.CSM0001; Logger.Error("TimeoutException occur:\n", x); return(true); } else { flgCatchErrorCode = Constants.ErrorCode.CSM0003; Logger.Error("Exception occur:\n", x); return(true); } }); } if (!string.IsNullOrEmpty(flgCatchErrorCode)) { AppLog.AuditLog(auditLog, LogStatus.Fail, GetMessageResource(flgCatchErrorCode, true)); throw new CustomException(GetMessageResource(flgCatchErrorCode, false)); } #endregion if (resActivity != null) { Logger.DebugFormat("-- XMLResponse --\n{0}", resActivity.SerializeObject()); InquiryActivityLogResponse response = new InquiryActivityLogResponse(); response.StatusResponse.ErrorCode = resActivity.ResponseStatus.ResponseCode; response.StatusResponse.Description = resActivity.ResponseStatus.ResponseMessage; if (exceptionErrorCodes != null && exceptionErrorCodes.Contains(resActivity.ResponseStatus.ResponseCode)) { response.StatusResponse.ErrorCode = Constants.ActivityResponse.Success; } if (Constants.ActivityResponse.Success.Equals(response.StatusResponse.ErrorCode)) { if (resActivity.InquiryActivityDataList != null) { response.ActivityDataItems = resActivity.InquiryActivityDataList .Select(ac => new ActivityDataItem { ActivityDateTime = ac.ActivityDateTime, ActivityID = ac.ActivityID, ActivityTypeID = ac.ActivityTypeID, ActivityTypeName = ac.ActivityTypeName, AreaID = ac.AreaID, AreaName = ac.AreaName, CISID = ac.CISID, CampaignID = ac.CampaignID, CampaignName = ac.CampaignName, ChannelID = ac.ChannelID, ChannelName = ac.ChannelName, ContractID = ac.ContractID, TypeID = ac.TypeID, TypeName = ac.TypeName, TicketID = ac.TicketID, ProductID = ac.ProductID, ProductName = ac.ProductName, ProductGroupID = ac.ProductGroupID, ProductGroupName = ac.ProductGroupName, SrID = ac.SrID, SubAreaID = ac.SubAreaID, SubAreaName = ac.SubAreaName, Status = ac.Status, SubStatus = ac.SubStatus, SubscriptionTypeName = ac.SubscriptionTypeName, SubscriptionID = ac.SubscriptonID, CustomerInfo = new CustomerInfo { SubscriptionType = GetDataItemValue(ac.CustomerInfoList.FirstOrDefault(x => x.SeqNo == 1)), SubscriptionID = GetDataItemValue(ac.CustomerInfoList.FirstOrDefault(x => x.SeqNo == 2)), FullName = GetDataItemValue(ac.CustomerInfoList.FirstOrDefault(x => x.SeqNo == 3)) }, ContractInfo = new ContractInfo { AccountNo = GetDataItemValue(ac.ContractInfoList.FirstOrDefault(x => x.SeqNo == 1)), CreateSystem = GetDataItemValue(ac.ContractInfoList.FirstOrDefault(x => x.SeqNo == 2)), RegistrationNo = GetDataItemValue(ac.ContractInfoList.FirstOrDefault(x => x.SeqNo == 3)), FullName = GetDataItemValue(ac.ContractInfoList.FirstOrDefault(x => x.SeqNo == 11)) + " " + GetDataItemValue(ac.ContractInfoList.FirstOrDefault(x => x.SeqNo == 12)), }, ActivityInfo = new ActivityInfo { CreatorBranch = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 10)), CreatorSR = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 11)), OwnerBranch = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 12)), OwnerSR = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 13)), DelegateBranch = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 14)), DelegateSR = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 15)), SendEmail = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 16)), EmailTo = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 17)), EmailCc = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 18)), EmailSubject = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 19)), EmailBody = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 20)), EmailAttachments = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 21)), ActivityDescription = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 22)), ActivityType = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 23)), SRStatus = GetDataItemValue(ac.ActivityInfoList.FirstOrDefault(x => x.SeqNo == 24)), }, OfficerInfo = new OfficerInfo { FullName = GetDataItemValue(ac.OfficerInfoList.FirstOrDefault(x => x.SeqNo == 1)) }, ProductInfo = new ProductInfo { ProductGroup = GetDataItemValue(ac.ProductInfoList.FirstOrDefault(x => x.SeqNo == 1)), Product = GetDataItemValue(ac.ProductInfoList.FirstOrDefault(x => x.SeqNo == 2)), Campaign = GetDataItemValue(ac.ProductInfoList.FirstOrDefault(x => x.SeqNo == 3)) } }) .OrderByDescending(x => x.SrID) .ThenByDescending(x => x.ActivityDateTime) .ToList(); } AppLog.AuditLog(auditLog, LogStatus.Success, string.Empty); return(response); } // Log DB AppLog.AuditLog(auditLog, LogStatus.Fail, GetMessageResource(Constants.SystemName.CAR, Constants.ServiceName.InquiryActivityLog, response.StatusResponse.ErrorCode, true)); throw new CustomException(GetMessageResource(Constants.SystemName.CAR, Constants.ServiceName.InquiryActivityLog, response.StatusResponse.ErrorCode, false)); } } finally { stopwatch.Stop(); Logger.DebugFormat("O:--Finish--:ElapsedMilliseconds/{0}", stopwatch.ElapsedMilliseconds); } return(null); }
public ServiceRequestSaveCarResult InsertActivityLogToCAR(AuditLogEntity auditLog, ServiceRequestForInsertLogEntity entity) { Logger.Info(_logMsg.Clear().SetPrefixMsg("Call CARLogService.CreateActivityLog").ToInputLogString()); var stopwatch = System.Diagnostics.Stopwatch.StartNew(); Logger.Debug("I:--START--:--CARLogService.CreateActivityLog--"); ServiceRequestSaveCarResult result = new ServiceRequestSaveCarResult(); try { Header profile = GetHeaderByServiceName <Header>(Constants.ServiceName.CreateActivityLog); var header = new CAR.LogServiceHeader { ReferenceNo = entity.SrActivityId.ConvertToString(), ServiceName = Constants.ServiceName.CreateActivityLog, SystemCode = profile.system_code, SecurityKey = profile.password, TransactionDateTime = DateTime.Now }; var accountNo = entity.AccountNo; if (!string.IsNullOrEmpty(entity.AccountNo) && entity.AccountNo.ToUpper() == "DUMMY") { accountNo = string.Format("DUMMY-{0}", entity.CustomerId); } #region "Customer Info" var customerInfoList = new List <CAR.DataItem>(); customerInfoList.Add(new CAR.DataItem { SeqNo = 1, DataLabel = "Subscription Type", DataValue = entity.CustomerSubscriptionTypeName }); customerInfoList.Add(new CAR.DataItem { SeqNo = 2, DataLabel = "Subscription ID", DataValue = entity.CustomerCardNo }); customerInfoList.Add(new CAR.DataItem { SeqNo = 3, DataLabel = "วันเกิด", DataValue = entity.CustomerBirthDateDisplay }); customerInfoList.Add(new CAR.DataItem { SeqNo = 4, DataLabel = "คำนำหน้า", DataValue = entity.CustomerTitleTh }); customerInfoList.Add(new CAR.DataItem { SeqNo = 5, DataLabel = "ชื่อลูกค้า", DataValue = entity.CustomerFirstNameTh }); customerInfoList.Add(new CAR.DataItem { SeqNo = 6, DataLabel = "นามสกุลลูกค้า", DataValue = entity.CustomerLastNameTh }); customerInfoList.Add(new CAR.DataItem { SeqNo = 7, DataLabel = "Title", DataValue = entity.CustomerTitleEn }); customerInfoList.Add(new CAR.DataItem { SeqNo = 8, DataLabel = "First Name", DataValue = entity.CustomerFirstNameEn }); customerInfoList.Add(new CAR.DataItem { SeqNo = 9, DataLabel = "Last Name", DataValue = entity.CustomerLastNameEn }); customerInfoList.Add(new CAR.DataItem { SeqNo = 10, DataLabel = "เบอร์โทรศัพท์ #1", DataValue = entity.CustomerPhoneNo1 }); customerInfoList.Add(new CAR.DataItem { SeqNo = 11, DataLabel = "เบอร์โทรศัพท์ #2", DataValue = entity.CustomerPhoneNo2 }); customerInfoList.Add(new CAR.DataItem { SeqNo = 12, DataLabel = "เบอร์โทรศัพท์ #3", DataValue = entity.CustomerPhoneNo3 }); customerInfoList.Add(new CAR.DataItem { SeqNo = 13, DataLabel = "เบอร์แฟกซ์", DataValue = entity.CustomerFax }); customerInfoList.Add(new CAR.DataItem { SeqNo = 14, DataLabel = "อีเมล์", DataValue = entity.CustomerEmail }); customerInfoList.Add(new CAR.DataItem { SeqNo = 15, DataLabel = "รหัสพนักงาน", DataValue = entity.CustomerEmployeeCode }); customerInfoList.Add(new CAR.DataItem { SeqNo = 16, DataLabel = "A Number.", DataValue = entity.ANo }); customerInfoList.Add(new CAR.DataItem { SeqNo = 17, DataLabel = "Call ID.", DataValue = entity.CallId }); #endregion #region "Contract Info" var contractInfoList = new List <CAR.DataItem>(); contractInfoList.Add(new CAR.DataItem { SeqNo = 1, DataLabel = "เลขที่บัญชี/สัญญา", DataValue = accountNo }); contractInfoList.Add(new CAR.DataItem { SeqNo = 2, DataLabel = "สถานะบัญชี", DataValue = entity.AccountStatus }); contractInfoList.Add(new CAR.DataItem { SeqNo = 3, DataLabel = "ทะเบียนรถ", DataValue = entity.AccountCarNo }); contractInfoList.Add(new CAR.DataItem { SeqNo = 4, DataLabel = "Product Group", DataValue = entity.AccountProductGroup }); contractInfoList.Add(new CAR.DataItem { SeqNo = 5, DataLabel = "Product", DataValue = entity.AccountProduct }); contractInfoList.Add(new CAR.DataItem { SeqNo = 6, DataLabel = "ชื่อสาขา", DataValue = entity.AccountBranchName }); contractInfoList.Add(new CAR.DataItem { SeqNo = 7, DataLabel = "Subscription Type", DataValue = entity.ContactSubscriptionTypeName }); contractInfoList.Add(new CAR.DataItem { SeqNo = 8, DataLabel = "Subscription ID", DataValue = entity.ContactCardNo }); contractInfoList.Add(new CAR.DataItem { SeqNo = 9, DataLabel = "วันเกิด", DataValue = entity.ContactBirthDateDisplay }); contractInfoList.Add(new CAR.DataItem { SeqNo = 10, DataLabel = "คำนำหน้า", DataValue = entity.ContactTitleTh }); contractInfoList.Add(new CAR.DataItem { SeqNo = 11, DataLabel = "ชื่อลูกค้า", DataValue = entity.ContactFirstNameTh }); contractInfoList.Add(new CAR.DataItem { SeqNo = 12, DataLabel = "นามสกุลลูกค้า", DataValue = entity.ContactLastNameTh }); contractInfoList.Add(new CAR.DataItem { SeqNo = 13, DataLabel = "Title", DataValue = entity.ContactTitleEn }); contractInfoList.Add(new CAR.DataItem { SeqNo = 14, DataLabel = "First Name", DataValue = entity.ContactFirstNameEn }); contractInfoList.Add(new CAR.DataItem { SeqNo = 15, DataLabel = "Last Name", DataValue = entity.ContactLastNameEn }); contractInfoList.Add(new CAR.DataItem { SeqNo = 16, DataLabel = "เบอร์โทรศัพท์ #1", DataValue = entity.ContactPhoneNo1 }); contractInfoList.Add(new CAR.DataItem { SeqNo = 17, DataLabel = "เบอร์โทรศัพท์ #2", DataValue = entity.ContactPhoneNo2 }); contractInfoList.Add(new CAR.DataItem { SeqNo = 18, DataLabel = "เบอร์โทรศัพท์ #3", DataValue = entity.ContactPhoneNo3 }); contractInfoList.Add(new CAR.DataItem { SeqNo = 19, DataLabel = "เบอร์แฟกซ์", DataValue = entity.ContactFax }); contractInfoList.Add(new CAR.DataItem { SeqNo = 20, DataLabel = "อีเมล์", DataValue = entity.ContactEmail }); contractInfoList.Add(new CAR.DataItem { SeqNo = 21, DataLabel = "เลขที่สัญญาที่เกี่ยวข้องกับผู้ติดต่อ", DataValue = entity.ContactAccountNo }); contractInfoList.Add(new CAR.DataItem { SeqNo = 22, DataLabel = "ความสัมพันธ์", DataValue = entity.ContactRelationshipName }); #endregion #region "Product Info var productInfoList = new List <CAR.DataItem>(); productInfoList.Add(new CAR.DataItem { SeqNo = 1, DataLabel = "Product Group", DataValue = entity.ProductGroupName }); productInfoList.Add(new CAR.DataItem { SeqNo = 2, DataLabel = "Product", DataValue = entity.ProductName }); productInfoList.Add(new CAR.DataItem { SeqNo = 3, DataLabel = "Campaign/Service", DataValue = entity.CampaignServiceName }); #endregion #region "Office Info" var officeInfoList = new List <CAR.DataItem>(); officeInfoList.Add(new CAR.DataItem { SeqNo = 1, DataLabel = "Officer", DataValue = entity.ActivityCreateUserFullName }); #endregion #region "Activity Info" var activityInfoList = new List <CAR.DataItem>(); activityInfoList.Add(new CAR.DataItem { SeqNo = 1, DataLabel = "Area", DataValue = entity.AreaName }); activityInfoList.Add(new CAR.DataItem { SeqNo = 2, DataLabel = "Sub Area", DataValue = entity.SubAreaName }); activityInfoList.Add(new CAR.DataItem { SeqNo = 3, DataLabel = "Type", DataValue = entity.TypeName }); activityInfoList.Add(new CAR.DataItem { SeqNo = 4, DataLabel = "SR Channel", DataValue = entity.ChannelCode }); activityInfoList.Add(new CAR.DataItem { SeqNo = 5, DataLabel = "Media Source", DataValue = entity.MediaSourceName }); activityInfoList.Add(new CAR.DataItem { SeqNo = 6, DataLabel = "Subject", DataValue = entity.Subject }); activityInfoList.Add(new CAR.DataItem { SeqNo = 7, DataLabel = "Remark", DataValue = entity.Remark }); activityInfoList.Add(new CAR.DataItem { SeqNo = 8, DataLabel = "Verify", DataValue = entity.Verify }); activityInfoList.Add(new CAR.DataItem { SeqNo = 9, DataLabel = "Verify Result", DataValue = entity.VerifyResult }); activityInfoList.Add(new CAR.DataItem { SeqNo = 10, DataLabel = "Creator Branch", DataValue = entity.SRCreatorBranchName }); activityInfoList.Add(new CAR.DataItem { SeqNo = 11, DataLabel = "Creator SR", DataValue = entity.SRCreatorUserFullName }); activityInfoList.Add(new CAR.DataItem { SeqNo = 12, DataLabel = "Owner Branch", DataValue = entity.OwnerBranchName }); activityInfoList.Add(new CAR.DataItem { SeqNo = 13, DataLabel = "Owner SR", DataValue = entity.OwnerUserFullName }); activityInfoList.Add(new CAR.DataItem { SeqNo = 14, DataLabel = "Delegate Branch", DataValue = entity.DelegateBranchName }); activityInfoList.Add(new CAR.DataItem { SeqNo = 15, DataLabel = "Delegate SR", DataValue = entity.DelegateUserFullName }); activityInfoList.Add(new CAR.DataItem { SeqNo = 16, DataLabel = "Send E-Mail", DataValue = entity.SendEmail }); activityInfoList.Add(new CAR.DataItem { SeqNo = 17, DataLabel = "E-Mail To", DataValue = entity.EmailTo }); activityInfoList.Add(new CAR.DataItem { SeqNo = 18, DataLabel = "E-Mail Cc", DataValue = entity.EmailCc }); activityInfoList.Add(new CAR.DataItem { SeqNo = 19, DataLabel = "E-Mail Subject", DataValue = entity.EmailSubject }); activityInfoList.Add(new CAR.DataItem { SeqNo = 20, DataLabel = "E-Mail Body", DataValue = entity.EmailBody }); activityInfoList.Add(new CAR.DataItem { SeqNo = 21, DataLabel = "E-Mail Attachments", DataValue = entity.EmailAttachments }); activityInfoList.Add(new CAR.DataItem { SeqNo = 22, DataLabel = "รายละเอียดการติดต่อ", DataValue = entity.ActivityDescription }); activityInfoList.Add(new CAR.DataItem { SeqNo = 23, DataLabel = "Activity Type", DataValue = entity.ActivityTypeName }); activityInfoList.Add(new CAR.DataItem { SeqNo = 24, DataLabel = "SR Status", DataValue = entity.SRStatusName }); if (entity.SrPageId == Constants.SRPage.DefaultPageId) { activityInfoList.Add(new CAR.DataItem { SeqNo = 25, DataLabel = "ที่อยู่ในการจัดส่งเอกสาร", DataValue = entity.AddressForDisplay }); } else if (entity.SrPageId == Constants.SRPage.AFSPageId) { activityInfoList.Add(new CAR.DataItem { SeqNo = 25, DataLabel = "รหัสสินทรัพย์รอขาย", DataValue = entity.AFSAssetNo }); activityInfoList.Add(new CAR.DataItem { SeqNo = 26, DataLabel = "รายละเอียดทรัพย์", DataValue = entity.AFSAssetDesc }); } else if (entity.SrPageId == Constants.SRPage.NCBPageId) { activityInfoList.Add(new CAR.DataItem { SeqNo = 25, DataLabel = "วันเกิด/วันที่จดทะเบียน (พ.ศ.)", DataValue = entity.NCBCustomerBirthDateDisplay }); activityInfoList.Add(new CAR.DataItem { SeqNo = 26, DataLabel = "Marketing Branch Upper #1", DataValue = entity.NCBMarketingBranchUpper1Name }); activityInfoList.Add(new CAR.DataItem { SeqNo = 27, DataLabel = "Marketing Branch Upper #2", DataValue = entity.NCBMarketingBranchUpper2Name }); activityInfoList.Add(new CAR.DataItem { SeqNo = 28, DataLabel = "Marketing Branch", DataValue = entity.NCBMarketingBranchName }); activityInfoList.Add(new CAR.DataItem { SeqNo = 29, DataLabel = "Marketing", DataValue = entity.NCBMarketingFullName }); activityInfoList.Add(new CAR.DataItem { SeqNo = 30, DataLabel = "NCB Check Status", DataValue = entity.NCBCheckStatus }); } #endregion #region "ActivitiyLog Data" int customerSubscriptionTypeCode; try { customerSubscriptionTypeCode = Convert.ToInt32(entity.CustomerSubscriptionTypeCode, CultureInfo.InvariantCulture); } catch (Exception ex) { customerSubscriptionTypeCode = 0; Logger.Error("Exception occur:\n", ex); } var customerCardNo = entity.CustomerCardNo; if (string.IsNullOrEmpty(customerCardNo) || customerSubscriptionTypeCode == 0) { customerCardNo = null; customerSubscriptionTypeCode = 0; } var activitiyLogData = new CAR.CreateActivityLogData { ChannelID = profile.channel_id, ActivityDateTime = entity.ActivityCreateDate.Value, SubscriptionTypeID = customerSubscriptionTypeCode, SubscriptionID = customerCardNo, LeadID = null, TicketID = null, SrID = entity.SrNo, ContractID = accountNo, ProductGroupID = entity.ProductGroupCode, ProductID = entity.ProductCode, CampaignID = entity.CampaignServiceCode, ActivityTypeID = entity.ActivityTypeId, ActivityTypeName = entity.ActivityTypeName, TypeID = entity.TypeCode, AreaID = entity.AreaCode, SubAreaID = entity.SubAreaCode, TypeName = entity.TypeName, AreaName = entity.AreaName, SubAreaName = entity.SubAreaName, Status = entity.SRStatusName, KKCISID = entity.KKCISID, NoncustomerID = entity.CustomerId.ConvertToString(), OfficerInfoList = officeInfoList.ToArray(), ProductInfoList = productInfoList.ToArray(), CustomerInfoList = customerInfoList.ToArray(), ActivityInfoList = activityInfoList.ToArray(), ContractInfoList = contractInfoList.ToArray(), }; #endregion CAR.CreateActivityLogResponse resActivity = null; #region "Call Service" string flgCatchErrorCode = string.Empty; try { flgCatchErrorCode = string.Empty; using (var client = new CAR.CASLogServiceSoapClient("CASLogServiceSoap")) { resActivity = ((CAR.CASLogServiceSoapClient)client).CreateActivityLog(header, activitiyLogData); if (client != null) { ((ICommunicationObject)client).Abort(); } } } catch (AggregateException aex) { aex.Handle((x) => { if (x is EndpointNotFoundException) { flgCatchErrorCode = Constants.ErrorCode.CSM0002; Logger.Error("EndpointNotFoundException occur:\n", x); return(true); } else if (x is CommunicationException) { flgCatchErrorCode = Constants.ErrorCode.CSM0002; Logger.Error("CommunicationException occur:\n", x); return(true); } else if (x is TimeoutException) { flgCatchErrorCode = Constants.ErrorCode.CSM0001; Logger.Error("TimeoutException occur:\n", x); return(true); } else { flgCatchErrorCode = Constants.ErrorCode.CSM0003; Logger.Error("Exception occur:\n", x); return(true); } }); result.IsSuccess = false; result.ErrorCode = flgCatchErrorCode; result.ErrorMessage = aex.Message; return(result); } if (!string.IsNullOrEmpty(flgCatchErrorCode)) { AppLog.AuditLog(auditLog, LogStatus.Fail, GetMessageResource(flgCatchErrorCode, true)); throw new CustomException(GetMessageResource(flgCatchErrorCode, false)); } #endregion if (resActivity != null) { Logger.DebugFormat("-- XMLResponse --\n{0}", resActivity.SerializeObject()); if (Constants.ActivityResponse.Success.Equals(resActivity.ResponseStatus.ResponseCode)) { AppLog.AuditLog(auditLog, LogStatus.Success, string.Empty); result.IsSuccess = true; result.ErrorCode = ""; result.ErrorMessage = ""; return(result); } else { // Log DB AppLog.AuditLog(auditLog, LogStatus.Fail, GetMessageResource(Constants.SystemName.CAR, Constants.ServiceName.CreateActivityLog, resActivity.ResponseStatus.ResponseCode, true)); result.IsSuccess = false; result.ErrorCode = resActivity.ResponseStatus.ResponseCode; result.ErrorMessage = resActivity.ResponseStatus.ResponseMessage; return(result); } } } catch (Exception ex) { Logger.Error("Exception occur:\n", ex); result.IsSuccess = false; result.ErrorCode = "1"; result.ErrorMessage = ex.Message; return(result); } finally { stopwatch.Stop(); Logger.DebugFormat("O:--Finish--:ElapsedMilliseconds/{0}", stopwatch.ElapsedMilliseconds); } return(null); }
private RecommendCampaignResponse GetCampaignByCustomer(AuditLogEntity auditLog, string cardNo, string hasOffered, string isInterested, string customerFlag, int campaignNum) { var stopwatch = System.Diagnostics.Stopwatch.StartNew(); Logger.Debug("I:--START--:--CmtService.CampaignByCustomer--"); try { Header profile = GetHeaderByServiceName <Header>(Constants.ServiceName.CampaignByCustomer); CMT.Header2 header = new CMT.Header2 { password = profile.password, reference_no = profile.reference_no, service_name = profile.service_name, system_code = profile.system_code, transaction_date = profile.transaction_date, user_name = profile.user_name }; CMT.CampaignByCustomersRequest reqCamp = new CMT.CampaignByCustomersRequest { header = header, CampByCitizenIdBody = new CMT.ReqCampByCusEntity { CitizenId = cardNo, HasOffered = hasOffered, IsInterested = isInterested, CustomerFlag = customerFlag, Command = profile.command, RequestDate = DateTime.Now.FormatDateTime("yyyyMMdd"), Channel = profile.channel_id, CampaignNum = campaignNum, ProductTypeId = "0,2" } }; CMT.CampaignByCustomersResponse resCamp = null; #region "Call Service" string flgCatchErrorCode = string.Empty; // Avoid error codes _commonFacade = new CommonFacade(); List <string> exceptionErrorCodes = _commonFacade.GetExceptionErrorCodes(Constants.SystemName.CMT, Constants.ServiceName.CampaignByCustomer); try { Retry.Do(() => { flgCatchErrorCode = string.Empty; Logger.DebugFormat("-- XMLRequest --\n{0}", reqCamp.SerializeObject()); using (var client = new CMT.CmtServiceClient()) { resCamp = ((CMT.ICmtService)client).CampaignByCustomers(reqCamp); if (client != null) { ((ICommunicationObject)client).Abort(); } } }, TimeSpan.FromSeconds(WebConfig.GetServiceRetryInterval()), WebConfig.GetServiceRetryNo()); } catch (AggregateException aex) { aex.Handle((x) => { if (x is EndpointNotFoundException) { flgCatchErrorCode = Constants.ErrorCode.CSM0002; Logger.Error("EndpointNotFoundException occur:\n", x); return(true); } else if (x is CommunicationException) { flgCatchErrorCode = Constants.ErrorCode.CSM0002; Logger.Error("CommunicationException occur:\n", x); return(true); } else if (x is TimeoutException) { flgCatchErrorCode = Constants.ErrorCode.CSM0001; Logger.Error("TimeoutException occur:\n", x); return(true); } else { flgCatchErrorCode = Constants.ErrorCode.CSM0003; Logger.Error("Exception occur:\n", x); return(true); } }); } if (!string.IsNullOrEmpty(flgCatchErrorCode)) { AppLog.AuditLog(auditLog, LogStatus.Fail, GetMessageResource(flgCatchErrorCode, true)); throw new CustomException(GetMessageResource(flgCatchErrorCode, false)); } #endregion if (resCamp != null) { Logger.DebugFormat("-- XMLResponse --\n{0}", resCamp.SerializeObject()); RecommendCampaignResponse response = new RecommendCampaignResponse(); response.StatusResponse.Status = resCamp.status.status; response.StatusResponse.ErrorCode = resCamp.status.error_code; response.StatusResponse.Description = resCamp.status.description; if (exceptionErrorCodes != null && exceptionErrorCodes.Contains(resCamp.status.error_code)) { response.StatusResponse.Status = Constants.StatusResponse.Success; } if (Constants.StatusResponse.Success.Equals(response.StatusResponse.Status)) { if (resCamp.detail != null) { response.CitizenId = resCamp.detail.CitizenId; if (resCamp.detail.CitizenIds != null && resCamp.detail.CitizenIds.Count() > 0) { var results = resCamp.detail.CitizenIds.Where(x => x != null).Select(x => new CampaignDetail { CampaignCriteria = x.CampaignCreiteria, CampaignDesc = x.CampaignDescription, CampaignId = x.CampaignId, CampaignName = x.CampaignName, CampaignOffer = x.CampaignOffer, CampaignScore = x.CampaignScore, Channel = x.Channel, CitizenIds = x.CitizenIds, DescCust = x.DescCust, StrExpireDate = x.ExpireDate, IsInterested = x.IsInterested, ContractNoRefer = x.ContractNo, ProductTypeId = x.ProductTypeId, ProductTypeName = x.ProductTypeName }); response.RecommendCampaignDetails = results.OrderBy(x => x.ExpireDate).ToList(); } } AppLog.AuditLog(auditLog, LogStatus.Success, string.Empty); return(response); } // Log DB AppLog.AuditLog(auditLog, LogStatus.Fail, GetMessageResource(Constants.SystemName.CMT, Constants.ServiceName.CampaignByCustomer, response.StatusResponse.ErrorCode, true)); throw new CustomException(GetMessageResource(Constants.SystemName.CMT, Constants.ServiceName.CampaignByCustomer, response.StatusResponse.ErrorCode, false)); } } finally { stopwatch.Stop(); Logger.DebugFormat("O:--Finish--:ElapsedMilliseconds/{0}", stopwatch.ElapsedMilliseconds); } return(null); }
private Ticket InsertLead(AuditLogEntity auditLog, CampaignSearchFilter searchFilter) { var stopwatch = System.Diagnostics.Stopwatch.StartNew(); Logger.Debug("I:--START--:--LeadService.InsertLead--"); try { Header profile = GetHeaderByServiceName <Header>(Constants.ServiceName.InsertLead); SLM.InsertLeadRequest reqLead = new SLM.InsertLeadRequest(); reqLead.RequestHeader = new SLM.Header { ChannelID = profile.channel_id, Encoding = "", Username = profile.user_name, Password = profile.password, Version = "" }; DataSet ds = ReadInsertLeadXml(); DataTable dtMandatory = ds.Tables["mandatory"]; dtMandatory.Rows[0]["firstname"] = searchFilter.FirstName; dtMandatory.Rows[0]["telNo1"] = searchFilter.PhoneNo; dtMandatory.Rows[0]["campaign"] = searchFilter.CampaignId; DataTable dtCustomerInfo = ds.Tables["customerInfo"]; dtCustomerInfo.Rows[0]["lastname"] = searchFilter.LastName; dtCustomerInfo.Rows[0]["email"] = searchFilter.Email; dtCustomerInfo.Rows[0]["cid"] = searchFilter.CardNo; dtCustomerInfo.Rows[0]["contractNoRefer"] = searchFilter.ContractNoRefer ?? string.Empty; DataTable dtCustomerDetail = ds.Tables["customerDetail"]; dtCustomerDetail.Rows[0]["availableTime"] = searchFilter.AvailableTime.ToSLMTimeFormat(); dtCustomerDetail.Rows[0]["detail"] = searchFilter.Comments; DataTable dtAppInfo = ds.Tables["appInfo"]; dtAppInfo.Rows[0]["lastOwner"] = searchFilter.OwnerLeadCode; reqLead.RequestXml = ds.ToXml(); SLM.InsertLeadResponse resLead = null; #region "Call Service" string flgCatchErrorCode = string.Empty; try { Retry.Do(() => { flgCatchErrorCode = string.Empty; Logger.DebugFormat("-- XMLRequest --\n{0}", reqLead.SerializeObject()); using (var client = new SLM.LeadServiceClient()) { resLead = ((SLM.ILeadService)client).InsertLead(reqLead); if (client != null) { ((ICommunicationObject)client).Abort(); } } }, TimeSpan.FromSeconds(WebConfig.GetServiceRetryInterval()), WebConfig.GetServiceRetryNo()); } catch (AggregateException aex) { aex.Handle((x) => { if (x is EndpointNotFoundException) { flgCatchErrorCode = Constants.ErrorCode.CSM0002; Logger.Error("EndpointNotFoundException occur:\n", x); return(true); } else if (x is CommunicationException) { flgCatchErrorCode = Constants.ErrorCode.CSM0002; Logger.Error("CommunicationException occur:\n", x); return(true); } else if (x is TimeoutException) { flgCatchErrorCode = Constants.ErrorCode.CSM0001; Logger.Error("TimeoutException occur:\n", x); return(true); } else { flgCatchErrorCode = Constants.ErrorCode.CSM0003; Logger.Error("Exception occur:\n", x); return(true); } }); } if (!string.IsNullOrEmpty(flgCatchErrorCode)) { AppLog.AuditLog(auditLog, LogStatus.Fail, GetMessageResource(flgCatchErrorCode, true)); throw new CustomException(GetMessageResource(flgCatchErrorCode, false)); } #endregion if (resLead != null) { Logger.DebugFormat("-- XMLResponse --\n{0}", resLead.SerializeObject()); var xdoc = XDocument.Parse(resLead.ResponseStatus); Ticket ticket = (xdoc.Descendants("ticket") .Select(x => new Ticket { TicketId = x.Attribute("id").Value, ResponseCode = x.Element("responseCode").Value, ResponseMessage = x.Element("responseMessage").Value, StrResponseDate = x.Element("responseDate").Value, StrResponseTime = x.Element("responseTime").Value, })).FirstOrDefault(); if (Constants.TicketResponse.SLMSuccess.Equals(ticket.ResponseCode)) { AppLog.AuditLog(auditLog, LogStatus.Success, string.Empty); return(ticket); } // Log DB AppLog.AuditLog(auditLog, LogStatus.Fail, GetMessageResource(Constants.SystemName.SLM, Constants.ServiceName.InsertLead, ticket.ResponseCode, true)); throw new CustomException(GetMessageResource(Constants.SystemName.SLM, Constants.ServiceName.InsertLead, ticket.ResponseCode, false)); } } finally { stopwatch.Stop(); Logger.DebugFormat("O:--Finish--:ElapsedMilliseconds/{0}", stopwatch.ElapsedMilliseconds); } return(null); }
private UpdateCampaignFlagsResponse UpdateCampaignFlagsByCustomer(AuditLogEntity auditLog, string cardNo, CampaignSearchFilter searchFilter) { var stopwatch = System.Diagnostics.Stopwatch.StartNew(); Logger.Debug("I:--START--:--CmtService.UpdateCustomerFlags--"); try { Header profile = GetHeaderByServiceName <Header>(Constants.ServiceName.CampaignByCustomer); var criteria = new CMT.UpdInquiry { CampaignId = searchFilter.CampaignId, HasOffered = searchFilter.HasOffered, IsInterested = searchFilter.IsInterested, UpdatedBy = searchFilter.UpdatedBy, Comments = searchFilter.Comments, Command = profile.command }; CMT.UpdateCustomerFlagsRequest reqCamp = new CMT.UpdateCustomerFlagsRequest { header = new CMT.Header { password = profile.password, reference_no = profile.reference_no, service_name = profile.service_name, system_code = profile.system_code, transaction_date = profile.transaction_date, user_name = profile.user_name }, UpdateCustFlag = new CMT.ReqUpdFlagEntity { CitizenId = cardNo, UpdInquiries = new CMT.UpdInquiry[] { criteria } } }; CMT.UpdateCustomerFlagsResponse resCamp = null; #region "Call Service" string flgCatchErrorCode = string.Empty; try { Retry.Do(() => { flgCatchErrorCode = string.Empty; Logger.DebugFormat("-- XMLRequest --\n{0}", reqCamp.SerializeObject()); using (var client = new CMT.CmtServiceClient()) { resCamp = ((CMT.ICmtService)client).UpdateCustomerFlags(reqCamp); if (client != null) { ((ICommunicationObject)client).Abort(); } } }, TimeSpan.FromSeconds(WebConfig.GetServiceRetryInterval()), WebConfig.GetServiceRetryNo()); } catch (AggregateException aex) { aex.Handle((x) => { if (x is EndpointNotFoundException) { flgCatchErrorCode = Constants.ErrorCode.CSM0002; Logger.Error("EndpointNotFoundException occur:\n", x); return(true); } else if (x is CommunicationException) { flgCatchErrorCode = Constants.ErrorCode.CSM0002; Logger.Error("CommunicationException occur:\n", x); return(true); } else if (x is TimeoutException) { flgCatchErrorCode = Constants.ErrorCode.CSM0001; Logger.Error("TimeoutException occur:\n", x); return(true); } else { flgCatchErrorCode = Constants.ErrorCode.CSM0003; Logger.Error("Exception occur:\n", x); return(true); } }); } if (!string.IsNullOrEmpty(flgCatchErrorCode)) { AppLog.AuditLog(auditLog, LogStatus.Fail, GetMessageResource(flgCatchErrorCode, true)); throw new CustomException(GetMessageResource(flgCatchErrorCode, false)); } #endregion if (resCamp != null) { Logger.DebugFormat("-- XMLResponse --\n{0}", resCamp.SerializeObject()); UpdateCampaignFlagsResponse response = new UpdateCampaignFlagsResponse(); response.StatusResponse.Status = resCamp.status.status; response.StatusResponse.ErrorCode = resCamp.status.error_code; response.StatusResponse.Description = resCamp.status.description; if (Constants.StatusResponse.Success.Equals(response.StatusResponse.Status)) { response.CitizenId = resCamp.detail.CitizenId; if (resCamp.detail.Result != null) { response.UpdateStatus = resCamp.detail.Result.UpdateStatus; } AppLog.AuditLog(auditLog, LogStatus.Success, string.Empty); return(response); } // Log DB AppLog.AuditLog(auditLog, LogStatus.Fail, GetMessageResource(Constants.SystemName.CMT, Constants.ServiceName.UpdateCustomerFlags, response.StatusResponse.ErrorCode, true)); throw new CustomException(GetMessageResource(Constants.SystemName.CMT, Constants.ServiceName.UpdateCustomerFlags, response.StatusResponse.ErrorCode, false)); } } finally { stopwatch.Stop(); Logger.DebugFormat("O:--Finish--:ElapsedMilliseconds/{0}", stopwatch.ElapsedMilliseconds); } return(null); }