/// <summary> /// Procesa un mensaje de tipo DDP Notification. /// Esta funcion incorpora el mensaje a la base de datos y pide al DDP un requerimiento de actualizacion /// </summary> /// <param name="msg">Mensaje DDPNotification</param> public void ProcessDDPNotification(DDPNotificationType ddpNotification) { var ddpRequest = new DataCenterLogic.DDPServerTypes.DDPRequestType(); ConfigurationManager configMgr = new ConfigurationManager(); var dver = new DDPVersionDataAccess(); var ver = dver.TodaysDDP(); ddpRequest.ArchivedDDPTimeStamp = DateTime.UtcNow; ddpRequest.ArchivedDDPTimeStampSpecified = false; ddpRequest.ArchivedDDPVersionNum = null; ddpRequest.DDPVersionNum = ver.regularVer + ":" + ver.inmediateVer; ddpRequest.MessageId = MessageIdManager.Generate(); ddpRequest.MessageType = DataCenterLogic.DDPServerTypes.messageTypeType.Item9; ddpRequest.Originator = configMgr.Configuration.DataCenterID; ddpRequest.schemaVersion = decimal.Parse(configMgr.Configuration.SchemaVersion); ddpRequest.test = DataCenterLogic.DDPServerTypes.testType.Item1; ddpRequest.TimeStamp = DateTime.UtcNow; //Si el notification es 0 (Regular) pedimos regular if (ddpNotification.UpdateType == DDPNotificationTypeUpdateType.Item0) { ddpRequest.UpdateType = DataCenterLogic.DDPServerTypes.DDPRequestTypeUpdateType.Item0; } //Si el notification es 1 (Inmediate) pedimos inmediate if (ddpNotification.UpdateType == DDPNotificationTypeUpdateType.Item1) { ddpRequest.UpdateType = DataCenterLogic.DDPServerTypes.DDPRequestTypeUpdateType.Item1; } //Enqueue DDPrequest Message msgout = new Message(ddpRequest); msgout.Label = "ddpRequest"; QueueManager.Instance().EnqueueOut(msgout); using (DDPNotificationDataAccess dao = new DDPNotificationDataAccess()) { dao.Create(TypeHelper.Map2DB(ddpNotification), 0); } log.Info("DDPNotification successfully processed"); }
public Response DDPNotification(DDPNotificationType ddpNotification) { log.Info("New DDPNotification message arrived"); validateSchemaVersion(ddpNotification.schemaVersion); //Create message and enqueue it Message msg = new Message(ddpNotification); msg.Label = "ddpNotification"; EnqueueMessageInQueue(msg); //Build response Response response = new Response(); response.response = responseType.Success; log.Info("DDPNotificationMessage first validation OK, enqueued"); return(response); }