Exemple #1
0
        /// <summary>
        /// Procesa un mensaje de tipo SARSurpicRequest.
        /// </summary>
        /// <param name="msg">Mensaje SARSURPICRequest</param>
        public void ProcessSARSURPICRequest(SARSURPICType SARSURPICRequest)
        {
            var configMgr           = new ConfigurationManager();
            var shipPositionManager = new ShipPositionManager();

            List <ShipPosition> shipPositions;

            if (SARSURPICRequest.ItemElementName == DataCenterLogic.DataCenterTypes.ItemChoiceType1.SARCircularArea)
            {
                shipPositions = shipPositionManager.GetLastPositionsInCircularArea(SARSURPICRequest.Item, int.Parse(SARSURPICRequest.NumberOfPositions));
            }
            else
            {
                shipPositions = shipPositionManager.GetLastPositionsInRectangularArea(SARSURPICRequest.Item, int.Parse(SARSURPICRequest.NumberOfPositions));
            }

            if (shipPositions.Count == 0)
            {
                DataCenterTypesIDE.ReceiptType receipt = new DataCenterLogic.DataCenterTypesIDE.ReceiptType();
                receipt.DDPVersionNum = DDPVersionManager.currentDDP();
                receipt.Destination   = SARSURPICRequest.DataUserRequestor;
                receipt.Message       = "No positions";
                receipt.MessageId     = MessageIdManager.Generate();
                receipt.MessageType   = DataCenterLogic.DataCenterTypesIDE.messageTypeType3.Item7;
                receipt.Originator    = "1005";
                receipt.ReceiptCode   = DataCenterLogic.DataCenterTypesIDE.receiptCodeType.Item7;
                receipt.ReferenceId   = SARSURPICRequest.MessageId;
                receipt.schemaVersion = decimal.Parse(configMgr.Configuration.SchemaVersion);
                receipt.test          = DataCenterLogic.DataCenterTypesIDE.testType.Item1;
                receipt.TimeStamp     = DateTime.UtcNow;

                //Receipt sent
                Message msgout = new Message(receipt);
                msgout.Label = "receipt";
                QueueManager.Instance().EnqueueOut(msgout);
            }
            else
            {
                using (var shipdao = new ShipDataAccess())
                {
                    var sprm = new ShipPositionReportManager();
                    foreach (ShipPosition shipPos in shipPositions)
                    {
                        sprm.SendReport(SARSURPICRequest.DataUserRequestor, shipPos, SARSURPICRequest.MessageId, DataCenterLogic.DataCenterTypesIDE.responseTypeType.Item4, DataCenterLogic.DataCenterTypesIDE.messageTypeType.Item3);
                    }
                }
            }

            using (var dao = new SARSURPICRequestDataAccess())
            {
                dao.Create(TypeHelper.Map2DB(SARSURPICRequest), 0);
            }
            log.Info("SARSURPICRequest successfully processed");
        }
Exemple #2
0
        public Response SARSURPICRequest(SARSURPICType SARSURPICRequest)
        {
            log.Info("New SARSURPIC request arrived");
            validateSchemaVersion(SARSURPICRequest.schemaVersion);

            //Create message and enqueue it
            Message msg = new Message(SARSURPICRequest);

            msg.Label = "SARSURPICRequest";

            EnqueueMessageInQueue(msg);

            //Build response
            Response response = new Response();

            response.response = responseType.Success;
            log.Info("SARSURPIC Request first validation OK, enqueued");
            return(response);
        }
Exemple #3
0
        public Response SARSURPICRequest(SARSURPICType request)
        {
            string msg = string.Format(@"DataUserRequestor:{0},DDPVersionNum:{1},Item:{2},
                    ItemElementName:{3},MessageId:{4},NumberOfPositions:{5},schemaVersion:{6}",
                                       request.DataUserRequestor,
                                       request.DDPVersionNum,
                                       request.Item,
                                       request.ItemElementName,
                                       request.MessageId,
                                       request.NumberOfPositions,
                                       request.schemaVersion);

            m_log.Info(msg);

            Response response = new Response();

            response.response = responseType.Success;
            return(response);
        }