Beispiel #1
0
        public ActionResult GridData(int page, int rows, string[] _search, string sidx, string sord)
        {
            string[]      ReqParams = { "MessageId", "MessageType", "Mensaje", "NewVersionNum", "Originator", "Test", "MsgInOut", "TimeStamp" };
            List <string> columns   = new List <string>();
            List <string> querys    = new List <string>();

            string tstamp   = "-";
            var    fromDate = new DateTime(2000, 1, 1);
            var    toDate   = new DateTime(2200, 1, 1);

            for (int i = 0; i < ReqParams.Count(); i++)
            {
                if (ReqParams[i].Contains("TimeStamp"))
                {
                    tstamp = Request.Params[ReqParams[i]];
                    if (tstamp != null)
                    {
                        var dates = tstamp.Split('-');
                        fromDate = DateTime.Parse(dates[0]);
                        if (dates.Length == 1)
                        {
                            toDate = fromDate.AddDays(1);
                        }
                        else
                        {
                            toDate = DateTime.Parse(dates[1]);
                        }
                    }
                    continue;
                }

                var tempValue = Request.Params[ReqParams[i]];
                if (tempValue != null)
                {
                    columns.Add(ReqParams[i]);
                    querys.Add(tempValue);
                }
            }

            var lda  = new DDPNotificationDataAccess(context);
            var logs = lda.GetAllBetween(fromDate, toDate);

            var model = from entity in logs.OrderBy(sidx + " " + sord)
                        select new
            {
                //Id, Message, MessageId, MessageType, NewVersionNum,test,TimeStamp,UpdateType,MsgInOutId
                Message       = entity.Message,
                MessageId     = entity.MessageId,
                MessageType   = entity.MessageType,
                NewVersionNum = entity.NewVersionNum,
                test          = entity.test,
                UpdateType    = entity.UpdateType,
                MsgInOut      = entity.MsgInOut.InOut,
                TimeStamp     = entity.TimeStamp.ToString()
            };

            return(Json(model.ToJqGridData(page, rows, null, querys.ToArray(), columns.ToArray())));
        }
Beispiel #2
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");
        }