示例#1
0
        /// <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");
        }
示例#2
0
        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);
        }