예제 #1
0
        //
        // GET: /Ship/
        public ActionResult List()
        {
            var sda = new ShipDataAccess(context);

            ViewData["barcos"] = sda.GetAll();
            return(View());
        }
예제 #2
0
        /// <summary>
        /// Verifica si la ultima posicion de cada uno de nuestros barcos esta en alguna standing order.
        /// Tinen en cuenta hay un STOP para ese requestor.
        /// Tiene en cuenta la titulacion
        /// </summary>
        public void Process()
        {
            ShipDataAccess sda = null;

            try
            {
                sda = new ShipDataAccess();

                var cgm        = new ContractingGovermentManager();
                var ddpm       = new DDPVersionManager();
                var ddpVersion = ddpm.GetCurrentDDPVersion();

                log.Info("Procesando standing orders.");
                foreach (Ship ship in sda.GetAll())
                {
                    ShipPosition pos = null;
                    using (var spda = new ShipPositionDataAccess())
                    {
                        pos = spda.GetLastShipPosition(ship.IMONum);
                    }

                    if (pos == null)
                    {
                        log.Info(string.Format("No hay ultima posicion para {0}", ship.IMONum));
                        continue;
                    }

                    List <StandingOrder> orders = new List <StandingOrder>();
                    using (var soda = new StandingOrderDataAccess())
                    {
                        orders = soda.GetOrdersForPosition(pos, ddpVersion);
                    }

                    if (orders.Count == 0)
                    {
                        log.Info(string.Format("No hay ninguna SO para {0},posid:{1},ddpVer:{2}", ship.IMONum, pos.Id, ddpVersion.Id));
                        continue;
                    }

                    var sprm = new ShipPositionReportManager();

                    foreach (StandingOrder order in orders)
                    {
                        var cg = order.Place.ContractingGoverment;

                        //Skipeo las SO de argentina (no chekeo si mis barcos estan en mis SO)
                        if (cg.LRITId == 1005)
                        {
                            continue;
                        }

                        using (var asprda = new ActiveShipPositionRequestDataAccess())
                        {
                            if (asprda.IsStopRequired(ship, cg.LRITId.ToString()) == true)
                            {
                                log.Info("Stop Activo Para el Barco: " + ship.IMONum + " Requestor: " + cg.LRITId.ToString());
                                continue;
                            }
                        }

                        log.Info(string.Format("El barco {0} esta dentro de la standing order {1}", ship.IMONum, order.PlaceId));

                        if (cgm.IsEntitled(cg, pos, ddpVersion, false) == false)
                        {
                            log.Info("no esta titulado para recibir la informacion, se envia recibo");
                            ReceiptManager.SendReceipt(cg.LRITId.ToString(), "0", DataCenterLogic.DataCenterTypesIDE.receiptCodeType.Item0,
                                                       string.Format("Not entitled to recieve"));
                        }
                        else
                        {
                            sprm.SendReport(cg.LRITId.ToString(), pos, "", DataCenterLogic.DataCenterTypesIDE.responseTypeType.Item1, DataCenterLogic.DataCenterTypesIDE.messageTypeType.Item1);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                log.Error("Error procesando StandingOrders", ex);
            }
            finally
            {
                sda.Dispose();
            }
        }
예제 #3
0
        public ActionResult Index()
        {
            if (User.IsInRole("ExternoVerificarFacturas"))
            {
                return(RedirectToAction("List", "ExternalInvoice"));
            }

            if (User.IsInRole("Facturador"))
            {
                return(RedirectToAction("List", "Contract"));
            }

            // Barcos
            var         sda    = new ShipDataAccess(context);
            var         sman   = new ShipManager();
            var         spman  = new ShipPositionManager();
            var         asprda = new ActiveShipPositionRequestDataAccess(context);
            List <Ship> barcos = sda.GetAll();

            string[] latlong = { "N/A", "N/A" };

            int i = 0;

            foreach (Ship barco in barcos)
            {
                ViewData[string.Format("State{0}", i)] = "normal"; //sman.GetShipState(barco);

                DataCenterDataAccess.ShipPosition LastPos = spman.GetLastShipPosition(barco.IMONum);
                if (LastPos == null)
                {
                    latlong[0] = "N/A";
                    latlong[1] = "N/A";
                }
                else
                {
                    latlong = spman.GetLatLongOfPoint(LastPos);
                }

                ViewData[string.Format("Nombre{0}", i)] = barco.Name.ToString();
                ViewData[string.Format("OMIId{0}", i)]  = barco.IMONum.ToString();
                if (LastPos != null)
                {
                    string temp  = latlong[0].Length > 6 ? latlong[0].Remove(6) : latlong[0];
                    string temp2 = latlong[1].Length > 6 ? latlong[1].Remove(6) : latlong[1];
                    ViewData[string.Format("UltimaPosicion{0}", i)] = "Lat: " + temp + " Long: " + temp2;
                    ViewData[string.Format("Fecha{0}", i)]          = LastPos.TimeStamp.ToString();
                }
                else
                {
                    ViewData[string.Format("UltimaPosicion{0}", i)] = "Lat: N/A Long: N/A";
                    ViewData[string.Format("Fecha{0}", i)]          = "N/A";
                }
                i++;
            }
            ViewData["total_barcos"] = i;
            //ViewData["total_barcos"] = 0;


            //Status

            int      status, aspStatus;
            TimeSpan since, aspSince;
            var      ssman = new SystemStatusManager();

            /*
             * ssman.getLastStatus(out status, out since);
             * ssman.GetLastAspStatus(out aspStatus, out aspSince);
             *
             * ViewData["IDEStatus"] = status;
             * ViewData["IDESince"] = since;
             * ViewData["DDPStatus"] = status;
             * ViewData["DDPSince"] = since;
             * ViewData["ASPStatus"] = aspStatus;
             * ViewData["ASPSince"] = aspSince;
             *
             * ViewData["AsprCount"] = asprda.Count();
             *
             * // Tráfico
             *
             * var tman = new TrafficManager();
             * var ts = tman.GetTrafficStats();
             *
             * ViewData["InMonth"] = ts.InMonth;
             * ViewData["InWeek"] = ts.InWeek;
             * ViewData["InDay"] = ts.InDay;
             * ViewData["OutMonth"] = ts.OutMonth;
             * ViewData["OutWeek"] = ts.OutWeek;
             * ViewData["OutDay"] = ts.OutDay;
             */


            return(View());
        }