Пример #1
0
        public RegistroParqueo RetrieveByTerminalId(int terminal)
        {
            var parqueo        = new RegistroParqueo();
            var terminalResult = _crudTerminal.Retrieve <Terminal>(new Terminal {
                Id = terminal
            });
            var configuracionResult = _crudConfiguracion.Retrieve <ConfiguracionTerminal>(new ConfiguracionTerminal {
                TerminalId = terminal
            });
            var parqueoResult = _crudParqueo.RetrieveEspaciosDisponibles <RegistroParqueo>(new RegistroParqueo {
                TerminalId = terminal
            });

            parqueo.TerminalId          = terminal;
            parqueo.CostoParqueoDia     = string.Format("¢{0}", configuracionResult.CostoParqueoDia.ToString("N2"));
            parqueo.CostoParqueoHora    = string.Format("¢{0}", configuracionResult.CostoParqueoHora.ToString("N2"));
            parqueo.EspaciosTotales     = terminalResult.EspaciosParqueo;
            parqueo.EspaciosDisponibles = parqueoResult.EspaciosDisponibles;

            return(parqueo);
        }
Пример #2
0
 public Terminal RetrieveById(Terminal terminal)
 {
     return(_crudTerminal.Retrieve <Terminal>(terminal));
 }
Пример #3
0
        public void RegistrarSalida(Recorrido recorrido)
        {
            try
            {
                var recorridoDb = _crudRecorrido.Retrieve <Recorrido>(recorrido);
                if (recorridoDb == null) //No existe
                {
                    throw new BusinessException(217);
                }

                if (ListaRecorridosActuales.FirstOrDefault(r => r.RecorridoId == recorridoDb.RecorridoId) != null || recorridoDb.HoraSalida != DateTime.MinValue) //Ya salio
                {
                    throw new BusinessException(220);
                }

                recorridoDb.HoraSalida = DateTime.Now;

                var ruta = _crudRuta.Retrieve <Ruta>(new Ruta {
                    Id = recorridoDb.RutaId
                });
                var terminal = _crudTerminal.Retrieve <Terminal>(new Terminal {
                    Id = ruta.TerminalId
                });

                var time = DateTime.Now.TimeOfDay;

                var tardia = time - recorridoDb.Horario;

                var configManager         = new ConfiguracionManager();
                var configuracionTerminal = configManager.RetrieveConfiguracionTerminal(ruta.TerminalId);

                if (tardia.Minutes > configuracionTerminal.CantidadMinutosTardia) // More than 15 minutes late.
                {
                    recorridoDb.MinutosTarde = tardia.Minutes;
                    if (_crudRecorrido.RetrieveTardias <Recorrido>().Count >= configuracionTerminal.CantidadTardiasSancion)
                    {
                        var sancionManager = new SancionManager();
                        var linea          = _crudLinea.Retrieve <Linea>(new Linea {
                            LineaId = ruta.LineaId
                        });

                        var sancion = new Sancion
                        {
                            Descripcion =
                                "Sanción por mas de " + configuracionTerminal.CantidadTardiasSancion +
                                " tardias en el mes.",
                            Multa             = 5000,
                            Estado            = "Activo",
                            TerminalId        = ruta.TerminalId,
                            Fecha             = DateTime.Now,
                            Suspencion        = "Inactivo",
                            FechaReactivacion = DateTime.Now.AddDays(20),
                            Empresa           = linea.Empresa.CedulaJuridica
                        };

                        sancionManager.Create(sancion);
                    }
                }

                _crudRecorrido.UpdateSalida(recorridoDb);

                recorridoDb.Posicion = new Posicion
                {
                    RecorridoId = recorridoDb.RecorridoId,
                    Latitude    = terminal.Latitude,
                    Longitude   = terminal.Longitude,
                    TimeStamp   = DateTime.Now
                };
                ListaRecorridosActuales.Add(recorridoDb);
            }
            catch (Exception e)
            {
                ExceptionManager.GetInstance().Process(e);
            }
        }