//private static string GetBatchFilename(string folder, string systemCode, DateTime curdate) //{ // int running = 1; // string dtStr = String.Format(curdate.ToString("{0}MMdd"), curdate.Year); // string tmpname = systemCode + "_" + dtStr + "_{0}.xml"; // // get last running // string cfgfile = "running.cfg"; // string fullcfgpath = folder + "\\" + cfgfile; // bool writenewcfg = true; // if (File.Exists(fullcfgpath)) // { // var cfgdetail = File.ReadAllText(fullcfgpath); // var tmp = cfgdetail.Split(':'); // if (tmp.Length > 1 && tmp[0] == dtStr) // { // running = AppUtil.SafeInt(tmp[1]); // // check file exists // if (File.Exists(folder + "\\" + String.Format(tmpname, running.ToString("000")))) // writenewcfg = false; // else // running++; // file not exists create new running // } // } // if (writenewcfg) // { // File.WriteAllText(fullcfgpath, dtStr + ":" + running.ToString()); // } // // return new filename // return String.Format(tmpname, running.ToString("000")); //} //public static bool AddCARBatch(CARServiceData data, string systemCode, out string error, Int64 batchMonitorId, string batchCode, string ticketId) //{ // bool ret = true; // error = ""; // try // { // var curdate = DateTime.Now; // // default // string folder = AppConstant.CARLogService.CARBatchFolder; // if (folder == "") // { // BizUtil.InsertLog(batchMonitorId, ticketId, "", "ไม่พบ Folder สำหรับจัดเก็บไฟล์ Excel เพื่อซ่อมการยิง WS CAR"); // Util.WriteLogFile(logfilename, batchCode, "ไม่พบ Folder สำหรับจัดเก็บไฟล์ Excel เพื่อซ่อมการยิง WS CAR"); // return false; // } // if (!Directory.Exists(folder)) Directory.CreateDirectory(folder); // string workcheck = folder + "\\working.check"; // try // { // // ป้องกันการทำงานพร้อมกันหลาย sesion // var startcheck = DateTime.Now; // while (File.Exists(workcheck) && (DateTime.Now - startcheck).TotalSeconds < 10) // System.Threading.Thread.Sleep(100); // // create workcheck // File.WriteAllText(workcheck, "working.."); // string filename = GetBatchFilename(folder, systemCode, curdate); //systemCode + "_" + curdate + "_" + running.ToString("000") + ".xml"; // string fullpath = folder + "\\" + filename; // // create batch data // ActivityItem itm = new ActivityItem(); // itm.ReferenceNo = data.ReferenceNo; // itm.ActivityDateTime = data.TransactionDateTime; // itm.ChannelID = data.ChannelId; // itm.SubscriptionID = data.SubscriptionId; // itm.SubscriptionTypeID = data.SubscriptionTypeId; // itm.LeadID = data.PreleadId; // itm.TicketID = data.TicketId; // itm.SrID = ""; // itm.ContractID = data.ContractNo; // itm.ProductGroupID = data.ProductGroupId; // itm.ProductID = data.ProductId; // itm.CampaignID = data.CampaignId; // itm.TypeName = data.TypeName; // itm.AreaName = data.AreaName; // itm.SubAreaName = data.SubAreaName; // itm.ActivityType = data.ActivityType; // itm.Status = data.Status; // itm.SubStatus = data.SubStatus; // itm.OfficerInfoList = data.OfficerInfoList; // itm.ContractInfoList = data.ContractInfoList; // itm.ProductInfoList = data.ProductInfoList; // itm.CustomerInfoList = data.CustomerInfoList; // itm.ActivityInfoList = data.ActivityInfoList; // // create serializer // XmlSerializer xs = new XmlSerializer(typeof(ActivityData)); // ActivityData batchdata; // // check existing file // if (File.Exists(fullpath)) // { // // load old file // using (var st = File.Open(fullpath, FileMode.Open)) // { // batchdata = xs.Deserialize(st) as ActivityData; // st.Close(); // } // } // else // { // // create new file // batchdata = new ActivityData(); // batchdata.BatchDate = DateTime.Now; // batchdata.SystemCode = systemCode; // batchdata.Items = new List<ActivityItem>(); // } // batchdata.BatchDate = DateTime.Now; // batchdata.SystemCode = systemCode; // batchdata.Items.Add(itm); // batchdata.TotalItems = batchdata.Items.Count; // // writeback // if (File.Exists(fullpath)) File.Delete(fullpath); // using (FileStream fs = new FileStream(fullpath, FileMode.Create)) // { // xs.Serialize(fs, batchdata); // fs.Close(); // } // } // catch (Exception ex) // { // error = ex.InnerException == null ? ex.Message : ex.InnerException.Message; // BizUtil.InsertLog(batchMonitorId, ticketId, "", "ไม่สามารถสร้างไฟล์ xml เพื่อซ่อมการยิง WS CAR : " + error); // Util.WriteLogFile(logfilename, batchCode, "ไม่สามารถสร้างไฟล์ xml เพื่อซ่อมการยิง WS CAR : " + error); // ret = false; // } // File.Delete(workcheck); // } // catch (Exception ex) // { // error = ex.InnerException == null ? ex.Message : ex.InnerException.Message; // BizUtil.InsertLog(batchMonitorId, ticketId, "", "ไม่สามารถสร้างไฟล์ xml เพื่อซ่อมการยิง WS CAR : " + error); // Util.WriteLogFile(logfilename, batchCode, "ไม่สามารถสร้างไฟล์ xml เพื่อซ่อมการยิง WS CAR : " + error); // ret = false; // } // return ret; //} public static bool AddCARLog(LogType _logType, string ResponseCode, string ErrorMessage, CARServiceData data, out string error) { error = ""; bool ret = true; try { // get config string errorCodeResend = AppConstant.CARLogService.CARErrorCodeResend; int maxResend = AppConstant.CARLogService.CARMaxResend; // create cas resend item CARServiceBiz.CASResendData crr = new CARServiceBiz.CASResendData(); crr.slm_CasReferenceNo = data.ReferenceNo; crr.slm_CasSystemCode = data.SystemCode; crr.slm_CasServiceName = data.ServiceName; crr.slm_CasLogType = _logType == LogType.Error ? "E" : "F"; crr.slm_CasResponse = ResponseCode; crr.slm_CasErrorMessage = ErrorMessage; crr.slm_ResendCount = 0; crr.slm_CreatedBy = data.SystemCode; crr.slm_UpdatedBy = data.SystemCode; // set log status if (_logType == LogType.Fail) { crr.slm_LogStatus = "R"; } else { crr.slm_LogStatus = "F"; if (!String.IsNullOrEmpty(errorCodeResend)) { var codes = errorCodeResend.Replace(" ", "").Split(','); foreach (var code in codes) { if (ResponseCode.Contains(code)) { crr.slm_LogStatus = "R"; } } } } // create batch data ActivityItem itm = new ActivityItem(); itm.ReferenceNo = data.ReferenceNo; itm.ActivityDateTime = data.TransactionDateTime; itm.ChannelID = data.ChannelId; itm.SubscriptionID = data.SubscriptionId; itm.SubscriptionTypeID = data.SubscriptionTypeId; itm.LeadID = data.PreleadId; itm.TicketID = data.TicketId; itm.SrID = ""; itm.ContractID = data.ContractNo; //Added by Pom 16/06/2016 itm.ProductGroupID = data.ProductGroupId; itm.ProductID = data.ProductId; itm.CampaignID = data.CampaignId; itm.ActivityTypeID = data.ActivityTypeId; // ** new itm.ActivityTypeName = ""; // data.ActivityType; // ** new itm.TypeID = data.TypeId; itm.TypeName = ""; // data.TypeName; itm.AreaID = data.AreaId; itm.AreaName = ""; // data.AreaName; itm.SubAreaID = data.SubAreaId; itm.SubAreaName = ""; // data.SubAreaName; itm.Status = data.Status; itm.SubStatus = data.SubStatus; itm.OfficerInfoList = data.OfficerInfoList; itm.ContractInfoList = data.ContractInfoList; itm.ProductInfoList = data.ProductInfoList; itm.CustomerInfoList = data.CustomerInfoList; itm.ActivityInfoList = data.ActivityInfoList; XmlSerializer xs = new XmlSerializer(typeof(ActivityItem)); using (StringWriter sw = new StringWriter()) { xs.Serialize(sw, itm); crr.slm_CasDetail = sw.ToString(); } CARServiceBiz cbz = new CARServiceBiz(); if (!cbz.SaveCarResend(crr, maxResend)) { throw new Exception(cbz.ErrorMessage); } } catch (Exception ex) { error = ex.InnerException == null ? ex.Message : ex.InnerException.Message; ret = false; } return(ret); }
//Added by Pom 20/05/2016 public static bool CreateActivityLog(CARServiceData data, Int64 batchMonitorId, string batchCode, string ticketId, string logfilename) { string errMsg = ""; try { SLMBatch.WebService.CARServiceProxy.LogServiceHeader header = new SLMBatch.WebService.CARServiceProxy.LogServiceHeader() { ReferenceNo = data.ReferenceNo, SecurityKey = data.SecurityKey, ServiceName = AppConstant.CARLogService.CARCreateActivityLogServiceName, SystemCode = data.SystemCode, TransactionDateTime = data.TransactionDateTime }; data.ServiceName = AppConstant.CARLogService.CARCreateActivityLogServiceName; //Activity Info List <SLMBatch.WebService.CARServiceProxy.DataItem> actInfoList = new List <SLMBatch.WebService.CARServiceProxy.DataItem>(); foreach (CARService.DataItem info in data.ActivityInfoList) { actInfoList.Add(new SLMBatch.WebService.CARServiceProxy.DataItem() { SeqNo = info.SeqNo, DataLabel = info.DataLabel, DataValue = info.DataValue }); } //Customer Info List <SLMBatch.WebService.CARServiceProxy.DataItem> cusInfoList = new List <SLMBatch.WebService.CARServiceProxy.DataItem>(); foreach (CARService.DataItem info in data.CustomerInfoList) { cusInfoList.Add(new SLMBatch.WebService.CARServiceProxy.DataItem() { SeqNo = info.SeqNo, DataLabel = info.DataLabel, DataValue = info.DataValue }); } //Product Info List <SLMBatch.WebService.CARServiceProxy.DataItem> prodInfoList = new List <SLMBatch.WebService.CARServiceProxy.DataItem>(); foreach (CARService.DataItem info in data.ProductInfoList) { prodInfoList.Add(new SLMBatch.WebService.CARServiceProxy.DataItem() { SeqNo = info.SeqNo, DataLabel = info.DataLabel, DataValue = info.DataValue }); } //Contact Info List <SLMBatch.WebService.CARServiceProxy.DataItem> contInfoList = new List <SLMBatch.WebService.CARServiceProxy.DataItem>(); foreach (CARService.DataItem info in data.ContractInfoList) { contInfoList.Add(new SLMBatch.WebService.CARServiceProxy.DataItem() { SeqNo = info.SeqNo, DataLabel = info.DataLabel, DataValue = info.DataValue }); } //Officer Info List <SLMBatch.WebService.CARServiceProxy.DataItem> offInfoList = new List <SLMBatch.WebService.CARServiceProxy.DataItem>(); foreach (CARService.DataItem info in data.OfficerInfoList) { offInfoList.Add(new SLMBatch.WebService.CARServiceProxy.DataItem() { SeqNo = info.SeqNo, DataLabel = info.DataLabel, DataValue = info.DataValue }); } SLMBatch.WebService.CARServiceProxy.CreateActivityLogData logdata = new SLMBatch.WebService.CARServiceProxy.CreateActivityLogData() { ActivityInfoList = actInfoList.ToArray(), CustomerInfoList = cusInfoList.ToArray(), ProductInfoList = prodInfoList.ToArray(), ContractInfoList = contInfoList.ToArray(), OfficerInfoList = offInfoList.ToArray(), ActivityDateTime = DateTime.Now, CampaignID = data.CampaignId, ChannelID = data.ChannelId, LeadID = data.PreleadId, ProductGroupID = data.ProductGroupId, ProductID = data.ProductId, Status = data.Status, SubStatus = data.SubStatus, TicketID = data.TicketId, SubscriptionTypeID = data.SubscriptionTypeId, SubscriptionID = data.SubscriptionId, TypeID = data.TypeId, AreaID = data.AreaId, SubAreaID = data.SubAreaId, ActivityTypeID = data.ActivityTypeId, ContractID = data.ContractNo }; SLMBatch.WebService.CARServiceProxy.CASLogServiceSoapClient service = new SLMBatch.WebService.CARServiceProxy.CASLogServiceSoapClient(); service.InnerChannel.OperationTimeout = new TimeSpan(0, 0, AppConstant.CARLogService.CARTimeout); var result = service.CreateActivityLog(header, logdata); if (result.ResponseStatus.ResponseCode == "CAS-I-000") { return(true); } else { string message = "Call CAR WS Failure " + result.ResponseStatus.ResponseCode + ": " + result.ResponseStatus.ResponseMessage; BizUtil.InsertLog(batchMonitorId, ticketId, "", message); Util.WriteLogFile(logfilename, batchCode, message); if (!AddCARLog(LogType.Error, result.ResponseStatus.ResponseCode, result.ResponseStatus.ResponseMessage, data, out errMsg)) { BizUtil.InsertLog(batchMonitorId, ticketId, "", "Insert kkslm_tr_cas_resend failed: " + errMsg); Util.WriteLogFile(logfilename, batchCode, "Insert kkslm_tr_cas_resend failed: " + errMsg); } return(false); //AddCARBatch(data, data.SystemCode, out errMsg, batchMonitorId, batchCode, ticketId); } } catch (Exception ex) { string message = ex.InnerException != null ? ex.InnerException.Message : ex.Message; message = "Call CAR WS Failure = " + message; BizUtil.InsertLog(batchMonitorId, ticketId, "", message); Util.WriteLogFile(logfilename, batchCode, message); if (!AddCARLog(LogType.Fail, "", message, data, out errMsg)) { BizUtil.InsertLog(batchMonitorId, ticketId, "", "Insert kkslm_tr_cas_resend failed: " + errMsg); Util.WriteLogFile(logfilename, batchCode, "Insert kkslm_tr_cas_resend failed: " + errMsg); } return(false); //AddCARBatch(data, data.SystemCode, out errMsg, batchMonitorId, batchCode, ticketId); } }