예제 #1
0
파일: TypeHelper.cs 프로젝트: dargonar/LRIT
        internal static ShipPositionReport Map2DB(DataCenterLogic.DataCenterTypesIDE.ShipPositionReportType shipPositionReport)
        {
            ShipPositionReport retShipPositionReport = new ShipPositionReport();

            retShipPositionReport.ASPId             = shipPositionReport.ASPId;
            retShipPositionReport.DataUserProvider  = shipPositionReport.DataUserProvider;
            retShipPositionReport.DataUserRequestor = shipPositionReport.DataUserRequestor;
            retShipPositionReport.DCId                 = shipPositionReport.DCId;
            retShipPositionReport.DDPVersionNum        = shipPositionReport.DDPVersionNum;
            retShipPositionReport.IMONum               = shipPositionReport.IMONum;
            retShipPositionReport.Latitude             = shipPositionReport.Latitude;
            retShipPositionReport.Longitude            = shipPositionReport.Longitude;
            retShipPositionReport.MessageId            = shipPositionReport.MessageId;
            retShipPositionReport.MessageType          = ToInt(shipPositionReport.MessageType);
            retShipPositionReport.MMSINum              = shipPositionReport.MMSINum;
            retShipPositionReport.ReferenceId          = shipPositionReport.ReferenceId;
            retShipPositionReport.ResponseType         = ToInt(shipPositionReport.ResponseType);
            retShipPositionReport.schemaVersion        = shipPositionReport.schemaVersion;
            retShipPositionReport.ShipborneEquipmentId = shipPositionReport.ShipborneEquipmentId;
            retShipPositionReport.ShipName             = shipPositionReport.ShipName;
            retShipPositionReport.test                 = ToInt(shipPositionReport.test);
            retShipPositionReport.TimeStamp1           = shipPositionReport.TimeStamp1;
            retShipPositionReport.TimeStamp2           = shipPositionReport.TimeStamp2;
            retShipPositionReport.TimeStamp3           = shipPositionReport.TimeStamp3;
            retShipPositionReport.TimeStamp4           = shipPositionReport.TimeStamp4;
            retShipPositionReport.TimeStamp5           = shipPositionReport.TimeStamp5;

            return(retShipPositionReport);
        }
예제 #2
0
        /// <summary>
        /// Envia un mensaje de tipo ShipPositionReport al IDE
        /// </summary>
        /// <param name="msg">Mensaje ShipPositionReport</param>
        private string SendShipPositionReport(Message msg)
        {
            DataCenterLogic.DataCenterTypesIDE.ShipPositionReportType shipPositionReport = (DataCenterLogic.DataCenterTypesIDE.ShipPositionReportType)(msg.Body);

            //Send to IDE
            if (System.Configuration.ConfigurationManager.AppSettings["send2servers"] != "False")
            {
                shipPositionReport.test = DataCenterLogic.DataCenterTypesIDE.testType.Item0;
                ideClient.ShipPositionReport(shipPositionReport);
                log.Info("SendShipPositionReport: shipPositionReport sent to IDE");
            }

            //ReferenceID puede ser de un report o "" si es SO
            //DataUserProvider deberia ser siempre 1005
            var     pricing = new PricingManager();
            decimal?price   = pricing.GetPriceForRequest(shipPositionReport.ReferenceId, shipPositionReport.DataUserProvider);

            //No tengo precio y es Es una reporte NO SAR?
            if (price == null)
            {
                log.Warn(string.Format("SendShipPositionReport: Se manda un reporte {0} de posicion sin precio", shipPositionReport.MessageId));
            }

            //Guarda el mensaje en la base de datos
            using (var dao = new ShipPositionReportDataAccess())
            {
                dao.Create(TypeHelper.Map2DB(shipPositionReport), 1, price);
            }
            log.Info(string.Format("ShipPositionReport stored: price {0}", price));
            return(shipPositionReport.MessageId);
        }