public static void WriteAudit(DataAudit.DataAudit auditLogToProcess, string title) { DataAudit.DataAudit auditLog = auditLogToProcess; auditLog.TimeStamp = DateTime.UtcNow; QueueMessage newMessage = null; //where should I get this? string dbName = ConfigurationManager.AppSettings.Get("PhytelServicesConnName"); string configqueue = "DATA_AUDIT_QUEUE"; DataSet ds = Phytel.Services.SQLDataService.Instance.ExecuteSQL(dbName, false, string.Format("Select [Value] From ApplicationSetting Where [Key] = '{0}'", configqueue)); if (ds.Tables[0].Rows.Count > 0) { string messageQueue = ds.Tables[0].Rows[0]["Value"].ToString(); //string messageQueue = "fake"; string xmlBody = ToXML(auditLog); newMessage = new QueueMessage(ASEMessageType.Process, messageQueue); newMessage.Body = xmlBody; MessageQueueHelper.SendMessage(@messageQueue, newMessage, title); } }
private static void TestAuditFailure(int numberOfMessagesToCreate) { while (numberOfMessagesToCreate > 0) { QueueMessage msg = new QueueMessage(); DataAudit da = new DataAudit(); da.Contract = "inhealth001"; da.EntityID = "531f2dcc072ef727c4d29e22"; da.EntityType = "testentitytype"; da.UserId = "531f2dcc072ef727c4d29yyy"; da.TimeStamp = DateTime.Now; string xmlBody = AuditDispatcher.ToXML(da); string messageQueue = @".\private$\failure"; QueueMessage newMessage = new QueueMessage(ASEMessageType.Process, messageQueue); newMessage.Body = xmlBody; MessageQueueHelper.SendMessage(@messageQueue, newMessage, "TestFailureType"); --numberOfMessagesToCreate; } }
public AuditData LogEvent(AuditData auditLogToProcess) { AuditData auditLog = auditLogToProcess; auditLog.EventDateTime = DateTime.Now; QueueMessage newMessage = null; string messageQueue = ApplicationSettingService.Instance.GetSetting("AUDIT_QUEUE").Value; string xmlBody = ToXML(auditLog); newMessage = new QueueMessage(ASEMessageType.Process, messageQueue); newMessage.Body = xmlBody; string title = string.Empty; if (auditLog.Type.ToString() == "PageView") { title = auditLog.Type.ToString() + " - " + auditLog.SourcePage; } else { title = auditLog.Type.ToString(); } MessageQueueHelper.SendMessage(@messageQueue, newMessage, title); return(auditLog); }
public MessageQueueListener(string queuePath, Type[] types) { _queue = MessageQueueHelper.GetOrCreateQueue(queuePath); if (types != null && types.Length > 0) { _queue.Formatter = new XmlMessageFormatter(types); } }
static PayOrderMqHelper() { try { var messageQueue = MessageQueueHelper.GetMessageQueueFromPool(); m_publisher = messageQueue.GetMessagePublisher(QueueName.AutoPayQueue.ToString()); } catch (Exception ex) { throw new Exception("Lx.Service.WcfHelper.SendPayOrderMessageToMq 初始化MQ失败。Ex:=" + ex.Source + ex.Message + ex.StackTrace); } }
private void InitializeCentralQueueSender(string currentQueuePath) { var centralQueueName = _settingsProvider.GetCentralMessageQueueName(); var centralQueueMachine = _settingsProvider.GetCentralMessageQueueMachine(); var centralQueuePath = MessageQueueHelper.GetQueuePath(centralQueueName, centralQueueMachine); _msmqSender = _msmqFactory.GetSender(centralQueuePath); _msmqSender.Send(new AddSubscriberMessage { SubscriberQueue = currentQueuePath }); }
public void ReturnTrueIfMessagePulledFromQueue() { //Arrange var customerService = new MessageQueueHelper(loggerMoq.Object, customerServiceMoq.Object, messaginQueueHandlerMoq.Object); //Act var result = customerService.PullMessageFromServiceBus(null); //Assert Assert.True(result); }
public void ReturnFalseIfMessageNotPulledFromQueue() { //Arrange messaginQueueHandlerMoq.Setup(mq => mq.PullMessage <PingVehicleModel>(It.IsAny <IModel>())).Returns(new ResponseDetails <PingVehicleModel, ulong>(ResponseStatusCode.NotFound)); var customerService = new MessageQueueHelper(loggerMoq.Object, customerServiceMoq.Object, messaginQueueHandlerMoq.Object); //Act var result = customerService.PullMessageFromServiceBus(null); //Assert Assert.False(result); }
public void ReturnFalseIfMessagePulledFromQueueButNotUpdateInDb() { //Arrange customerServiceMoq.Setup(cs => cs.UpdateVehicleStatus(It.IsAny <PingVehicleModel>())).Returns(new ResponseDetailsBase(ResponseStatusCode.NotFound)); var customerService = new MessageQueueHelper(loggerMoq.Object, customerServiceMoq.Object, messaginQueueHandlerMoq.Object); //Act var result = customerService.PullMessageFromServiceBus(null); //Assert Assert.False(result); }
/// <summary> /// 功能:初始化 /// </summary> public static void Initalize() { try { m_messageReceiver = MessageQueueHelper.GetMessageQueueFromPool().GetMessageReceiver(QueueName.LxLogQueue.ToString(), ""); m_messageReceiver.Received += m_messageReceiver_Received; m_messageReceiver.Start(); Console.WriteLine("日志消息队列消费者已启动!"); } catch (Exception ex) { string strErrorMessage = SysLogHelper.GetErrorLogInfo(ex, true); SysLogHelper.LogMessage("LogMQConsumerHelper.Static", strErrorMessage); } }
/// <summary> /// 功能:初始化 /// </summary> public static void Initalize() { try { m_messageReceiver = MessageQueueHelper.GetMessageQueueFromPool().GetMessageReceiver(QueueName.AutoPayQueue.ToString(), ""); m_messageReceiver.Received += m_messageReceiver_Received; m_messageReceiver.Start(); Console.WriteLine("订单服务已启动!"); } catch (Exception ex) { string strMessage = $"初始化,原因:{SysLogHelper.GetErrorLogInfo(ex, true)}"; SysLogHelper.LogMessage("Lx.Service.Initalize", strMessage); } }
public void ReturnSuccessIfMessagePushgedToQueue() { //Arrange var customerService = new MessageQueueHelper(loggerMoq.Object, messaginQueueHandlerMoq.Object); //Act var result = customerService.PushMessageToQueue(new VehicleDto() { VehicleId = "Test123" }); //Assert Assert.Equal(ResponseStatusCode.Success, result.StatusCode); }
public bool Start(HostControl hostControl) { _logger.Info("The file control service is starting."); var queueName = _settingsProvider.GetMessageQueueName(); var queuePath = MessageQueueHelper.GetQueuePath(queueName); _msmqListener = _msmqFactory.GetListener(queuePath, _messageTypes); _msmqListener.MessageReceived += OnMessageReceived; _msmqListener.Start(); _commandSender.Start(); _logger.Info("The file control service has started."); return(true); }
public void ReturnFailedIfMessageNotPushedToMessageQueue(ResponseStatusCode responseStatusCode) { //Arrange messaginQueueHandlerMoq.Setup(mq => mq.PushMessage <PingVehicleModel>(It.IsAny <PingVehicleModel>(), It.IsAny <IModel>())).Returns(new ResponseDetailsBase(responseStatusCode)); var customerService = new MessageQueueHelper(loggerMoq.Object, messaginQueueHandlerMoq.Object); //Act var result = customerService.PushMessageToQueue(new VehicleDto() { VehicleId = "Test123" }); //Assert Assert.Equal(responseStatusCode, result.StatusCode); }
public void ReturnInvalidInpust() { //Arrange var customerService = new MessageQueueHelper(loggerMoq.Object, messaginQueueHandlerMoq.Object); //Act var nullResult = customerService.PushMessageToQueue(new VehicleDto() { }); var emptyResult = customerService.PushMessageToQueue(new VehicleDto() { VehicleId = "" }); //Assert Assert.Equal(ResponseStatusCode.InvalidInputs, nullResult.StatusCode); Assert.Equal(ResponseStatusCode.InvalidInputs, emptyResult.StatusCode); }
public override void Execute(QueueMessage queueMessage) { try { _DBConnName = base.Configuration.SelectSingleNode("//Phytel.ASE.Process/ProcessConfiguration/PhytelServicesConnName").InnerText; DataAudit.DataAudit da = MessageQueueHelper.DeserializeXmlObject(queueMessage.Body, typeof(DataAudit.DataAudit)) as DataAudit.DataAudit; MongoDatabase db = Phytel.Services.MongoService.Instance.GetDatabase(_DBConnName, da.Contract, true, "Audit"); db.GetCollection(da.EntityType).Insert(da); XmlNodeList queues = Configuration.SelectNodes(ConfigXPathPrefix + "AdditionalQueues/Queue"); if (queues != null) { queueMessage.Routes.ForEach(t => { t.RetryProcessInterval = GetRetryInterval(); t.MaxProcessRetryCount = 4; }); foreach (XmlNode queue in queues) { try { string queueName = queue.InnerText; RouteMessage(queueMessage, queueName); } catch (Exception ex) { LogError(ex, LogErrorCode.Error, LogErrorSeverity.Critical); RetryMessage = true; } } } } catch (Exception ex) { base.LogError(ex, LogErrorCode.Error, LogErrorSeverity.Critical); throw; } }
public static void WriteAudit(AuditData auditLogToProcess) { AuditData auditLog = auditLogToProcess; auditLog.EventDateTime = DateTime.UtcNow; QueueMessage newMessage = null; //where should I get this? string dbName = ConfigurationManager.AppSettings.Get("PhytelServicesConnName"); string configqueue = "AUDIT_QUEUE"; DataSet ds = Phytel.Services.SQLDataService.Instance.ExecuteSQL(dbName, false, string.Format("Select [Value] From ApplicationSetting Where [Key] = '{0}'", configqueue)); if (ds.Tables[0].Rows.Count > 0) { string messageQueue = ds.Tables[0].Rows[0]["Value"].ToString(); //string messageQueue = "fake"; string xmlBody = ToXML(auditLog); newMessage = new QueueMessage(ASEMessageType.Process, messageQueue); newMessage.Body = xmlBody; #if DEBUG Debug.WriteLine(string.Format("***** Message Body ***** {0}", newMessage.Body)); #endif string title = string.Empty; if (auditLog.Type.ToString() == "PageView") { title = auditLog.Type.ToString() + " - " + auditLog.SourcePage; } else { title = auditLog.Type.ToString(); } MessageQueueHelper.SendMessage(@messageQueue, newMessage, title); } }
public bool Start(HostControl hostControl) { _logger.Info("The file handler service is starting."); var queueName = _settingsProvider.GetMessageQueueName(); var queuePath = MessageQueueHelper.GetQueuePath(queueName); InitializeCentralQueueSender(queuePath); InitializeQueueListener(queuePath); var sourceFolderPaths = _settingsProvider.GetSourceFolderPaths(); _pageTimeout = _settingsProvider.GetPageTimeout(); try { _fileHandlers = sourceFolderPaths.Select(sourceFolderPath => { var handler = _fileHandlerFactory.GetHandler(); handler.DocumentSaved += OnDocumentSaved; handler.Start(sourceFolderPath, _pageTimeout); return(handler); }).ToList(); } catch (Exception ex) { _logger.Error(ex.Message); throw; } var reportingTimeout = _settingsProvider.GetReportingTimeout() * 1000; _reportingTimer.Change(reportingTimeout, reportingTimeout); _logger.Info("The file handler service has started."); return(true); }
public async Task <IActionResult> Post() { // non-forced-to-disposal UserRegistrationResponse response = new UserRegistrationResponse { IsSucceded = true, ResultId = (int)UserRegistrationResponseEnum.Success }; // forced-to-disposal UserRegistrationRequest userRegistrationRequest = null; MongoDBConnectionInfo mongoDBConnectionInfo = null; KeyVaultConnectionInfo keyVaultConnectionInfo = null; User user = null; try { userRegistrationRequest = new UserRegistrationRequest(); userRegistrationRequest.Email = HttpContext.User.FindFirst("preferred_username").Value; userRegistrationRequest.Fullname = ((HttpContext.User.FindFirst("name") != null) ? HttpContext.User.FindFirst("name").Value : string.Empty); if (string.IsNullOrEmpty(userRegistrationRequest.Fullname)) { throw new BusinessException((int)UserRegistrationResponseEnum.FailedEmptyFullname); } mongoDBConnectionInfo = new MongoDBConnectionInfo() { ConnectionString = ApplicationSettings.ConnectionString, DatabaseId = ApplicationSettings.DatabaseId, UserCollection = ApplicationSettings.UserCollection }; using (UserRegistrationDataHelper userRegistrationDataHelper = new UserRegistrationDataHelper(mongoDBConnectionInfo)) { user = userRegistrationDataHelper.GetUser(userRegistrationRequest.Email); } if (user == null) { keyVaultConnectionInfo = new KeyVaultConnectionInfo() { CertificateName = ApplicationSettings.KeyVaultCertificateName, ClientId = ApplicationSettings.KeyVaultClientId, ClientSecret = ApplicationSettings.KeyVaultClientSecret, KeyVaultIdentifier = ApplicationSettings.KeyVaultIdentifier }; using (MessageQueueHelper messageQueueHelper = new MessageQueueHelper()) { UserRegistrationMessage userRegistrationMessage = new UserRegistrationMessage() { fullname = userRegistrationRequest.Fullname, email = userRegistrationRequest.Email }; await messageQueueHelper.QueueMessageAsync(userRegistrationMessage, ApplicationSettings.UserRegistrationQueueName, keyVaultConnectionInfo); } } else { response.ResultId = (int)UserRegistrationResponseEnum.SuccessAlreadyExists; } } catch (Exception ex) { response.IsSucceded = false; if (ex is BusinessException) { response.ResultId = ((BusinessException)ex).ResultId; } else { response.ResultId = (int)UserRegistrationResponseEnum.Failed; this.logger.LogError($">> Exception: {ex.Message}, StackTrace: {ex.StackTrace}"); if (ex.InnerException != null) { this.logger.LogError($">> Inner Exception Message: {ex.InnerException.Message}, Inner Exception StackTrace: {ex.InnerException.StackTrace}"); } } } finally { userRegistrationRequest = null; mongoDBConnectionInfo = null; keyVaultConnectionInfo = null; user = null; GC.Collect(); } string message = EnumDescription.GetEnumDescription((UserRegistrationResponseEnum)response.ResultId); this.logger.LogInformation($">> Message information: {message}"); return((response.IsSucceded) ? (ActionResult) new OkObjectResult(new { message = message }) : (ActionResult) new BadRequestObjectResult(new { message = message })); }
/// <summary> /// 发送快照 /// </summary> /// <param name="data">data为SnapshotMessage实体</param> public static void SendSnapshot(object data) { MessageQueueHelper<object> helper = new MessageQueueHelper<object>(AppSettings.SnapShot, 1); helper.Send(data); }
//public List<Policies> ListenQueuePolicy(string queueHost, string queueName) //{ // MessageQueue x = new MessageQueue( ".\\" + queueHost + "\\" + queueName); // System.Messaging.Message myMessage = null; // try // { // myMessage = x.Receive(MessageQueueTransactionType.Single); // myMessage.Formatter = new BinaryMessageFormatter(); // List<Policies> lstPolicies = myMessage.Body as List<Policies>; // return lstPolicies; // } // catch (Exception ex) // { // return new List<Policies>(); // } //} public override RunTaskResult RunTask() { RunTaskResult taskResult = new RunTaskResult() { Success = true, Result = "执行完毕" }; List <Policies> lstPolicies = new List <Policies>(); string queueName = CustomConfig["policyUpdateQueueName"]; string warningQueueName = CustomConfig["warningPolicyUpdateQueueName"]; //预警队列名称 string warningQueueHost = CustomConfig["warningPolicyUpdateQueueHost"]; //预警队列主机 string queueHost = CustomConfig["policyUpdateQueueHost"]; while (true) { try { #region 监听队列 try { ShowRunningLog(DateTime.Now + ":队列监听中..."); MessageQueue x = new MessageQueue(".\\" + queueHost + "\\" + queueName); System.Messaging.Message myMessage = x.Receive(MessageQueueTransactionType.Single); myMessage.Formatter = new BinaryMessageFormatter(); lstPolicies = myMessage.Body as List <Policies>; if (lstPolicies == null || lstPolicies.Count <= 0) { ShowRunningLog(DateTime.Now + ":未从队列中收到任何政策更新包!"); continue; // return taskResult; } } catch (Exception ex) { ShowRunningLog(DateTime.Now + ":监听队列异常:" + JsonConvert.SerializeObject(ex)); taskResult = new RunTaskResult() { Success = false, Result = ex.Message }; // return taskResult; } #endregion #region 过滤掉失败次数大于2次的 ShowRunningLog(DateTime.Now + ":从队列中收到政策:" + lstPolicies.Count + "条!"); List <Policies> lstFailedPolicies = lstPolicies.Where(x => x.Id >= 2).ToList();//找出失败大于等于俩次的条数 if (lstFailedPolicies.Count > 0) { ShowRunningLog(DateTime.Now + ":收到更新政策失败次数超过2次的政策条数:" + lstFailedPolicies.Count + "条,开始发送到预警队列"); bool r = new MessageQueueHelper().SendMsgToQueue(warningQueueName, lstPolicies, MessagePriority.Normal, warningQueueHost); if (r) { ShowRunningLog(DateTime.Now + ":发送到预警队列成功"); continue; } new MessageQueueHelper().SendMsgToQueue(queueName, lstPolicies, MessagePriority.Normal, queueHost); ShowRunningLog(DateTime.Now + ":发送到预警队列失败!重新发送回队列成功!"); } lstPolicies = lstPolicies.Where(x => x.Id < 2).ToList(); if (lstPolicies.Count <= 0) { ShowRunningLog(DateTime.Now + ":失败次数小于2次的政策数为0,不用更新"); continue; //return taskResult; } UploadPolicy(lstPolicies, queueName, queueHost); #endregion } catch (Exception ex) { lstPolicies.ForEach(x => { x.Id += 1; }); ShowRunningLog(DateTime.Now + ":抛出异常:" + JsonConvert.SerializeObject(ex)); new MessageQueueHelper().SendMsgToQueue(queueName, lstPolicies, MessagePriority.Normal, queueHost); //taskResult = new RunTaskResult { Success = false, Result = ex.Message }; } // Thread.Sleep(10 * 1000); } return(taskResult); }
public async Task <IActionResult> Post([FromBody] ContractDeploymentRequest model) { // non-forced-to-disposal ContractDeploymentResponse result = new ContractDeploymentResponse { IsSucceded = true, ResultId = (int)ContractDeploymentResponseEnum.Success }; // forced-to-disposal KeyVaultConnectionInfo keyVaultConnectionInfo = null; try { if (string.IsNullOrEmpty(model.Name)) { throw new BusinessException((int)ContractDeploymentResponseEnum.FailedEmptyName); } if (string.IsNullOrEmpty(model.Description)) { throw new BusinessException((int)ContractDeploymentResponseEnum.FailedEmptyDescription); } keyVaultConnectionInfo = new KeyVaultConnectionInfo() { CertificateName = ApplicationSettings.KeyVaultCertificateName, ClientId = ApplicationSettings.KeyVaultClientId, ClientSecret = ApplicationSettings.KeyVaultClientSecret, KeyVaultIdentifier = ApplicationSettings.KeyVaultIdentifier }; using (MessageQueueHelper messageQueueHelper = new MessageQueueHelper()) { ContractDeploymentMessage contractDeploymentMessage = new ContractDeploymentMessage() { name = model.Name, description = model.Description }; await messageQueueHelper.QueueMessageAsync(contractDeploymentMessage, ApplicationSettings.ContractDeploymentQueueName, keyVaultConnectionInfo); } } catch (Exception ex) { result.IsSucceded = false; if (ex is BusinessException) { result.ResultId = ((BusinessException)ex).ResultId; } else { result.ResultId = (int)ContractDeploymentResponseEnum.Failed; this.logger.LogError($">> Exception: {ex.Message}, StackTrace: {ex.StackTrace}"); if (ex.InnerException != null) { this.logger.LogError($">> Inner Exception Message: {ex.InnerException.Message}, Inner Exception StackTrace: {ex.InnerException.StackTrace}"); } } } finally { keyVaultConnectionInfo = null; GC.Collect(); } string message = EnumDescription.GetEnumDescription((ContractDeploymentResponseEnum)result.ResultId); this.logger.LogInformation($">> Message information: {message}"); return((result.IsSucceded) ? (ActionResult) new OkObjectResult(new { message = message }) : (ActionResult) new BadRequestObjectResult(new { message = message })); }
public void SyncForAdd() { try { PolicyServiceBy19e.syncRateRequest req = new PolicyServiceBy19e.syncRateRequest(); PolicyServiceBy19e.SyncRateServiceGHImplService c = new PolicyServiceBy19e.SyncRateServiceGHImplService(); //while (true) //{ string[] arryTimeAndId = GetLastUpTimeAndId("ND.ReceivePolicyService\\19e\\PolicyAddLog19e").Split('|'); req.aircomp2c = ""; //航空公司, 如:MU, 为空取所有 req.rateType = "3"; //政策类型[1:普通/2:特殊3:全部] req.psgType = "1"; //乘客类型[1:成人/2:儿童/3:全部] req.strategyId = arryTimeAndId[1]; req.updateTime = arryTimeAndId[0]; req.minDiscount = "0"; req.pageSize = Config.PerPageSize; req.username = Config.Username19e; //"18618001265"; req.appcode = Config.AppCode19e; // "19"; req.sign = GetSignSync(req); PolicyServiceBy19e.syncRateResponse res = new syncRateResponse(); try { // ShowMsgToForm("接收19e政策请求参数:" + JsonConvert.SerializeObject(req)); res = c.GetSyncRate(req); } catch (Exception ex) { ShowMsgToForm("接收19e政策异常:" + JsonConvert.SerializeObject(ex)); return; } if (res.code.Trim() == "F") { ShowMsgToForm("19e政策接收失败,错误信息:" + res.message); return; } else if (res.code.Trim() == "S") { ShowMsgToForm("19e政策接口连接成功,接收政策...", "19e", false, false); PolicyServiceBy19e.rate[] arry = res.rateList; if (arry == null || arry.Length == 0) { ShowMsgToForm("19e政策 - 尚无新政策", "19e", false, false); return; } List <Policies> list = new List <Policies>(); Regex regV = new Regex(@"[^\d\/]"); foreach (var item in arry) { #region 新代码 Policies policyInfo = new Policies(); // policyInfo.PolicyId = System.Guid.NewGuid().ToString(); policyInfo.AirlineCode = item.aircomp2c; //航空公司 policyInfo.DptCity = item.fromport3c; //出发城市 policyInfo.ArrCity = item.toport3c; //抵达城市 policyInfo.FlightIn = item.flightnoFit == null ? "" : item.flightnoFit == "***" ? "" : regV.Replace(item.flightnoFit, "").Trim(); //适用航班 policyInfo.FlightOut = item.flightnoNotFit == null ? "" : item.flightnoNotFit == "***" ? "" : regV.Replace(item.flightnoNotFit, "").Trim(); //不适用航班 policyInfo.Seat = item.flightclass != "" ? item.flightclass : ""; //舱位 policyInfo.SrcType = (int)item.routetype; //航程类型航程类型[1:单程/2:往返/3:单程及往返] policyInfo.SaleEffectDate = item.sdate; //政策有效期(开始时间) policyInfo.SaleExpireDate = item.edate; //政策有效期(截止时间) policyInfo.FlightEffectDate = item.sdate; policyInfo.FlightExpireDate = item.edate; policyInfo.CommisionPoint = item.backrate; //返点 policyInfo.CommisionMoney = 0; //返现 policyInfo.NeedSwitchPNR = 0; //是否需要换pnr policyInfo.TicketSpeed = item.thespeed; //出票速度 policyInfo.IssueWorkTime = item.worktime == null ? "" : item.worktime; //出票时间段 policyInfo.VtWorkTime = item.voidtime == null ? "" : item.voidtime; //废票时间段 policyInfo.PartnerId = (int)SupplierType._19E; policyInfo.PartnerName = SupplierType._19E.ToString(); policyInfo.Comment = item.chngretmemo ?? ""; //政策备注 policyInfo.FlightCycle = item.daysFit; //适用班期 policyInfo.DelDegree = 1; policyInfo.CommisionType = int.Parse(item.ratetype); //政策类型 1-普通 policyInfo.PartnerPolicyId = item.strategyId.ToString(); //政策代号 policyInfo.PolicyStatus = 1; policyInfo.CreateTime = DateTime.Now; policyInfo.PolicyType = ((PolicyType)item.strategyType).ToString(); policyInfo.PsgType = item.psgtype;//乘客类型[1:成人] //policyInfo.UserType = item.usertype;//客户类型[1:散客] policyInfo.Param1 = ""; policyInfo.Param2 = ""; policyInfo.Param3 = ""; policyInfo.Param4 = ""; list.Add(policyInfo); #endregion } ShowMsgToForm("19e政策接收成功,共接收 " + list.Count + " 条政策,更新数据库...", "19e", false); if (Config.IsSendPolicyQueue) { MessageQueueHelper helper = new MessageQueueHelper(); bool r = helper.SendMsgToQueue(Config.QueueName, list, MessagePriority.Normal, Config.QueueHost); if (r) { ShowMsgToForm("发送去哪儿更新队列成功", "19e", false); } } List <PolicySyncRec> errList = PolicyManage19e.SynchronizePolicy(list); if (errList.Count <= 0) { SaveLastUpTimeAndId(res.updateTime + "|" + arry[arry.Length - 1].strategyId, "ND.ReceivePolicyService\\19e\\PolicyAddLog19e"); ShowMsgToForm("19e政策更新数据库成功!", "19e", false); } //else // ShowMsgToForm("19e政策更新数据库失败!更新不成功的数据:" + JsonConvert.SerializeObject(errList),"19eErrAddRec"); if (res.pageCount < 1) { return; } else { ShowMsgToForm("19e政策 PageCount(" + res.pageCount + ") 大于 1 继续调用同步接口...", "19e", false); } } } catch (Exception ex) { var str = ex.Message; while (ex.InnerException != null) { ex = ex.InnerException; str += ex.ToString(); // ex.Message; } ShowMsgToForm("添加19e政策异常:" + str); } }
public void SyncForDel() { try { PolicyServiceBy19e.syncRateDelRequest reqDel = new PolicyServiceBy19e.syncRateDelRequest(); PolicyServiceBy19e.SyncRateServiceGHImplService c = new PolicyServiceBy19e.SyncRateServiceGHImplService(); string[] arryTimeAndId = GetLastUpTimeAndId("ND.ReceivePolicyService\\19e\\PolicyDelLog19e").Split('|'); reqDel.updateTime = arryTimeAndId[0]; reqDel.deleteStrategyId = arryTimeAndId[1]; reqDel.pageSize = Config.PerPageSize; reqDel.username = Config.Username19e; //"18618001265"; reqDel.appcode = Config.AppCode19e; // "19"; reqDel.sign = GetSignSyncDel(reqDel); PolicyServiceBy19e.syncRateDelResponse res = c.GetSyncRateDel(reqDel); //SaveLog("19e政策(删除)响应数据:" + JsonConvert.SerializeObject(res), "19eDelResponse"); if (res.code.Trim() == "F") { ShowMsgToForm("19e政策(删除)接收失败,错误信息" + res.message); } else if (res.code.Trim() == "S") { ShowMsgToForm("19e政策(删除)接口连接成功,接收政策...", "19e", false, false); PolicyServiceBy19e.rateDel[] arry = res.rateList; if (arry == null || arry.Length == 0) { ShowMsgToForm("19e政策 - 尚无删除的政策", "19e", false, false); return; } List <Policies> listDelPolicy = new List <Policies>(); List <string> list = new List <string>(); foreach (var item in arry) { Policies pl = new Policies(); pl.DelDegree = 0; pl.PartnerPolicyId = item.strategyId.ToString(); list.Add(item.strategyId.ToString()); listDelPolicy.Add(pl); } if (Config.IsSendPolicyQueue) { MessageQueueHelper helper = new MessageQueueHelper(); bool r = helper.SendMsgToQueue(Config.QueueName, listDelPolicy, MessagePriority.Normal, Config.QueueHost); if (r) { ShowMsgToForm("发送去哪儿删除更新队列成功,共发送" + listDelPolicy.Count + "条", "19e", false); } } ShowMsgToForm("19e政策(删除)接收成功,共接收 " + list.Count + " 条政策,更新数据库...", "19e", false); List <string> errSql = PolicyManage19e.SynchronizePolicyDel(list); SaveLastUpTimeAndId(res.updateTime + "|" + res.deleteStrategyId, "ND.ReceivePolicyService\\19e\\PolicyDelLog19e"); if (errSql.Count <= 0) { //SaveLastUpTimeAndId(res.updateTime + "|" + arry[arry.Length - 1].strategyId, "PolicyDelLog"); ShowMsgToForm("19e政策(删除)更新数据库成功!", "19e", false); } else { ShowMsgToForm("19e政策(删除)更新数据库失败!", "19e", false);//执行的sql为:"+JsonConvert.SerializeObject(errSql)\ //SaveLog("19e政策(删除)更新数据库失败!执行的sql为:" + JsonConvert.SerializeObject(errSql), "19eErrDelRec"); } if (res.rateList.Length < 1) { return; } else { ShowMsgToForm("19e政策(删除) rateList(" + res.rateList.Length + ") 大于 1 继续调用同步(删除)接口...", "19e", false); } } } catch (Exception ex) { var str = ex.Message; while (ex.InnerException != null) { ex = ex.InnerException; str += ex.ToString(); // ex.Message; } ShowMsgToForm("删除19e政策异常:" + str); } }
public async Task <IActionResult> Post([FromBody] UserRegistrationRequest model) { // non-forced-to-disposal UserRegistrationResult result = new UserRegistrationResult { IsSucceded = true, ResultId = (int)UserRegistrationResultEnum.Success }; // forced-to-disposal MongoDBConnectionInfo mongoDBConnectionInfo = null; KeyVaultConnectionInfo keyVaultConnectionInfo = null; User user = null; try { if (string.IsNullOrEmpty(model.Fullname)) { throw new BusinessException((int)UserRegistrationResultEnum.FailedEmptyFullname); } if (string.IsNullOrEmpty(model.Email)) { throw new BusinessException((int)UserRegistrationResultEnum.FailedEmptyEmail); } if (string.IsNullOrEmpty(model.Password)) { throw new BusinessException((int)UserRegistrationResultEnum.FailedEmptyPassword); } using (ValidationHelper validationHelper = new ValidationHelper()) { bool validationEmail = validationHelper.IsValidEmail(model.Email); if (!validationEmail) { throw new BusinessException((int)UserRegistrationResultEnum.FailedNotValidEmail); } } mongoDBConnectionInfo = new MongoDBConnectionInfo() { ConnectionString = Settings.ConnectionString, DatabaseId = Settings.DatabaseId, UserCollection = Settings.UserCollection }; using (UserRegistrationDataHelper userRegistrationDataHelper = new UserRegistrationDataHelper(mongoDBConnectionInfo)) { user = userRegistrationDataHelper.GetUser(model.Email); } if (user != null) { throw new BusinessException((int)UserRegistrationResultEnum.FailedEmailAlreadyExists); } string password = string.Empty; using (HashHelper hashHelper = new HashHelper()) { password = hashHelper.GetSha256Hash(model.Password); } keyVaultConnectionInfo = new KeyVaultConnectionInfo() { CertificateName = Settings.KeyVaultCertificateName, ClientId = Settings.KeyVaultClientId, ClientSecret = Settings.KeyVaultClientSecret, KeyVaultIdentifier = Settings.KeyVaultIdentifier }; using (MessageQueueHelper messageQueueHelper = new MessageQueueHelper()) { UserRegistrationMessage userRegistrationMessage = new UserRegistrationMessage() { fullname = model.Fullname, email = model.Email, password = password }; await messageQueueHelper.QueueMessageAsync(userRegistrationMessage, Settings.UserRegistrationQueueName, keyVaultConnectionInfo); } } catch (Exception ex) { result.IsSucceded = false; if (ex is BusinessException) { result.ResultId = ((BusinessException)ex).ResultId; } else { result.ResultId = (int)UserRegistrationResultEnum.Failed; this.logger.LogError($">> Exception: {ex.Message}, StackTrace: {ex.StackTrace}"); if (ex.InnerException != null) { this.logger.LogError($">> Inner Exception Message: {ex.InnerException.Message}, Inner Exception StackTrace: {ex.InnerException.StackTrace}"); } } } finally { mongoDBConnectionInfo = null; keyVaultConnectionInfo = null; user = null; GC.Collect(); } string message = EnumDescription.GetEnumDescription((UserRegistrationResultEnum)result.ResultId); this.logger.LogInformation($">> Message information: {message}"); return((result.IsSucceded) ? (ActionResult) new OkObjectResult(new { message = message }) : (ActionResult) new BadRequestObjectResult(new { message = message })); }
public MessageQueueInterface() { queues = MessageQueueHelper.GetTridentMessageQueue(); }
public MessageQueueSender(string queuePath) { _queue = MessageQueueHelper.GetOrCreateQueue(queuePath); }