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); }
public Terminal RetrieveById(Terminal terminal) { return(_crudTerminal.Retrieve <Terminal>(terminal)); }
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); } }