Пример #1
0
 public DataCenterLogic.DDPServerTypes.Response DDPRequest(DataCenterLogic.DDPServerTypes.DDPRequestType DDPRequest1)
 {
     DataCenterLogic.DDPServerTypes.DDPRequestRequest inValue = new DataCenterLogic.DDPServerTypes.DDPRequestRequest();
     inValue.DDPRequest = DDPRequest1;
     DataCenterLogic.DDPServerTypes.DDPRequestResponse retVal = ((DataCenterLogic.DDPServerTypes.ddpPortType)(this)).DDPRequest(inValue);
     return(retVal.Response);
 }
Пример #2
0
        /// <summary>
        /// Transforma un DDPRequestType en un DDPRequestSent
        /// </summary>
        /// <param name="ddpRequest">DDPRequestType</param>
        /// <returns>DDPRequestSent</returns>
        public static DDPRequestSent Map2DB(DataCenterLogic.DDPServerTypes.DDPRequestType ddpRequest)
        {
            DDPRequestSent retDDPRequest = new DDPRequestSent();

            retDDPRequest.ArchivedDDPTimeStamp          = ddpRequest.ArchivedDDPTimeStamp.Year == 1 ? DateTime.UtcNow : ddpRequest.ArchivedDDPTimeStamp;
            retDDPRequest.ArchivedDDPTimeStampSpecified = ddpRequest.ArchivedDDPTimeStampSpecified ? 1 : 0;
            retDDPRequest.ArchivedDDPVersionNum         = ddpRequest.ArchivedDDPVersionNum;
            retDDPRequest.DDPVersionNum = ddpRequest.DDPVersionNum;
            retDDPRequest.MessageId     = ddpRequest.MessageId;
            retDDPRequest.MessageType   = ToInt(ddpRequest.MessageType);
            retDDPRequest.Originator    = ddpRequest.Originator;
            retDDPRequest.schemaVersion = ddpRequest.schemaVersion;
            retDDPRequest.test          = ToInt(ddpRequest.test);
            retDDPRequest.TimeStamp     = ddpRequest.TimeStamp;
            retDDPRequest.UpdateType    = ToInt(ddpRequest.UpdateType);

            return(retDDPRequest);
        }
Пример #3
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");
        }
Пример #4
0
 public DDPRequestRequest(DataCenterLogic.DDPServerTypes.DDPRequestType DDPRequest)
 {
     this.DDPRequest = DDPRequest;
 }
Пример #5
0
        public ActionResult CreateAndSendDDPRequest()
        {
            var ddpRequest = new DataCenterLogic.DDPServerTypes.DDPRequestType();

            string archivedVersion   = Request.Params["archivedVersion"];
            int    updateType        = int.Parse(Request.Params["updateType"]);
            string archivedTimeStamp = Request.Params["archivedTimeStamp"];

            ViewData["archivedVersion"]   = archivedVersion;
            ViewData["updateType"]        = updateType;
            ViewData["archivedTimeStamp"] = archivedTimeStamp;

            DateTime test = DateTime.UtcNow;

            if (updateType == 4 && DateTime.TryParse(archivedTimeStamp, out test) == false)
            {
                ViewData["error"] = "Fecha invalida";
                return(View("NewDDPRequest"));
            }

            if (updateType == 4 && archivedVersion.Trim().Length == 0)
            {
                ViewData["error"] = "Version no especificada";
                return(View("NewDDPRequest"));
            }

            ddpRequest.ArchivedDDPVersionNum         = null;
            ddpRequest.ArchivedDDPTimeStamp          = DateTime.UtcNow;
            ddpRequest.ArchivedDDPTimeStampSpecified = false;

            if (updateType == 4)
            {
                ddpRequest.ArchivedDDPTimeStampSpecified = true;
                ddpRequest.ArchivedDDPTimeStamp          = DateTime.Parse(archivedTimeStamp).ToUniversalTime();
            }

            switch (updateType)
            {
            case 0:
                ddpRequest.UpdateType = DataCenterLogic.DDPServerTypes.DDPRequestTypeUpdateType.Item0;
                break;

            case 1:
                ddpRequest.UpdateType = DataCenterLogic.DDPServerTypes.DDPRequestTypeUpdateType.Item1;
                break;

            case 2:
                ddpRequest.UpdateType = DataCenterLogic.DDPServerTypes.DDPRequestTypeUpdateType.Item2;
                break;

            case 3:
                ddpRequest.UpdateType = DataCenterLogic.DDPServerTypes.DDPRequestTypeUpdateType.Item3;
                break;

            case 4:
                ddpRequest.UpdateType = DataCenterLogic.DDPServerTypes.DDPRequestTypeUpdateType.Item4;
                break;
            }

            string outQueue = System.Configuration.ConfigurationManager.AppSettings["CoreOutQueue"];

            QueueManager.Instance().SetOut(outQueue);

            var mgr = new DataCenterLogic.DDPManager();

            QueueManager.Instance().EnqueueOut(mgr.MakeDDPRequest(ddpRequest));

            return(View("Sent"));
        }