Example #1
0
        public static Vehiculos ConsultarVehiculoCliente()
        {
            List <SP_GENERAL_CONSULTARResult> lstDB = new List <SP_GENERAL_CONSULTARResult>();

            using (Conect db = new Conect())
            {
                lstDB = db.SP_GENERAL_CONSULTAR().ToList <SP_GENERAL_CONSULTARResult>();
            }

            Vehiculos lstRes = new Vehiculos();

            foreach (SP_GENERAL_CONSULTARResult item in lstDB)
            {
                lstRes.Add(new Vehiculo
                {
                    MATRICULA = item.MATRICULA,
                    MARCA     = item.MARCA,
                    ESTADO    = item.ESTADO
                                //,MODELO = convert. item.MODELO
                    , MODELO = System.Convert.ToInt16(item.MODELO),
                });
            }

            return(lstRes);
        }
Example #2
0
        public Vehiculo CrearVehiculo(String matricula, String marca, String modelo, string dni)
        {
            try
            {
                //Si existe matricula ERROR
                if (ExisteMatricula(matricula))
                {
                    throw new Exception("Matricula Existe");
                }

                //Si no existe dni ERROR
                Conductor c = Conductores.Where(x => x.DNI == dni).First();
                if (c == null)
                {
                    throw new Exception("DNI no Existe");
                }

                Vehiculo v = new Vehiculo(matricula, marca, modelo);


                //La descripcion no especifica si el conductor ya es habitual 10 veces, si el vehiculo se añade(sin conductor) o no.
                //Yo decido añadirlo solo si puede ser habital
                if (AñadirConductorHabitual(v, c))
                {
                    Vehiculos.Add(v);
                    return(v);
                }

                return(null);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
 /// <summary>
 /// se actualiza el estado en memoria del vehiculo pasado como parametro
 /// </summary>
 /// <param name="vehiculo"></param>
 public void actualizarVehiculo(Vehiculo vehiculo)
 {
     try
     {
         Vehiculo eliminar = null;
         foreach (Vehiculo v in Vehiculos)
         {
             if (v.Id.ToString().Equals(vehiculo.Id.ToString()))
             {
                 eliminar = v;
             }
         }
         Vehiculos.Remove(eliminar);
         Vehiculos.Add(vehiculo);
     }
     catch (MensajeException msg)
     {
         throw msg;
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
 private void ExecuteSendDataCommand()
 {
     Vehiculos.Add(Vehiculo1);
     Vehiculos.Add(Vehiculo2);
     Vehiculos.Add(Vehiculo3);
 }
Example #5
0
        public List <Vehiculo> CargarVehiculo(List <Vehiculo> colaVehiculos, DateTime reloj, int dias)
        {
            Random random   = new Random();
            var    vehiculo = colaVehiculos.First();

            if (vehiculo.TipoVehiculo == "Auto")
            {
                if (Capacidad == 0)
                {
                    return(colaVehiculos);
                }

                if (ProximaCarga == new DateTime())
                {
                    Capacidad--;
                    RandomCargas = random.NextDouble();
                    DistribucionCargaAutos.GenerarVariableAleatoria(RandomCargas);

                    var generado = DistribucionCargaAutos.GenerarVariableAleatoria(RandomCargas);
                    TiempoEntreCargas = DateTime.Today.AddMinutes(generado.NumAleatorio);
                    var proximaCarga = dias > 1 ?
                                       TiempoEntreCargas.AddDays(dias - 1).AddMinutes(DateTimeConverter.EnMinutos(reloj)) :
                                       TiempoEntreCargas.AddMinutes(DateTimeConverter.EnMinutos(reloj));
                    ProximaCarga = proximaCarga;
                    Estado       = "Ocupado";

                    vehiculo.TiempoCarga = TiempoEntreCargas;
                    vehiculo.Estado      = $"Cargando en {Nombre}";

                    Vehiculos.Add(vehiculo);
                    TransbordadorActual = new Transbordador(RandomCargas, TiempoEntreCargas, ProximaCarga, vehiculo);

                    colaVehiculos.Remove(colaVehiculos.First());
                }

                return(colaVehiculos);
            }
            else
            {
                if (Capacidad <= 1)
                {
                    return(colaVehiculos);
                }

                if (ProximaCarga == new DateTime())
                {
                    Capacidad   -= 2;
                    RandomCargas = random.NextDouble();
                    DistribucionCargaAutos.GenerarVariableAleatoria(RandomCargas);

                    var generado = DistribucionCargaCamiones.GenerarVariableAleatoria(RandomCargas);
                    TiempoEntreCargas = dias > 1 ? DateTime.Today.AddDays(dias - 1).AddMinutes(generado.NumAleatorio) :
                                        DateTime.Today.AddMinutes(generado.NumAleatorio);
                    var proximaCarga = TiempoEntreCargas.AddMinutes(DateTimeConverter.EnMinutos(reloj));
                    ProximaCarga = proximaCarga;
                    Estado       = "Ocupado";

                    vehiculo.TiempoCarga = TiempoEntreCargas;
                    vehiculo.Estado      = $"Cargando en {Nombre}";

                    Vehiculos.Add(vehiculo);
                    TransbordadorActual = new Transbordador(RandomCargas, TiempoEntreCargas, ProximaCarga, vehiculo);

                    colaVehiculos.Remove(colaVehiculos.First());
                }

                return(colaVehiculos);
            }
        }
 //Otros Metodos
 public void AsociarVehiculo(Vehiculo vehiculo)
 {
     Vehiculos.Add(vehiculo);
 }
Example #7
0
 public void RegisterVehiculo(Guid vehiculoID)
 {
     Vehiculos.Add(vehiculoID);
 }
        /// <summary>
        /// Se edita el vehiculo pasado. El id del vehiculo se utiliza para reconstruir el objeto ObjectId.
        /// si no se pasa un chofer, se crea solo un vehiculo
        /// </summary>
        /// <param name="vehiculo"></param>
        /// <param name="idVehiculo"></param>
        /// <param name="choferSeleccionado"></param>
        /// <param name="tipoVehiculo"></param>
        /// <returns></returns>
        public async Task editarVehiculo(Vehiculo vehiculo, string idVehiculo, string choferSeleccionado, TipoVehiculo tipoVehiculo)
        {
            try
            {
                if (vehiculo != null && !choferSeleccionado.Equals("000000000000000000000000"))
                {
                    vehiculo.Id       = new ObjectId(idVehiculo);
                    vehiculo.Unidades = calcularUnidades(vehiculo.Alto, vehiculo.Ancho, vehiculo.Largo);
                    vehiculo.Tipo     = tipoVehiculo;
                    //Chofer chofer = await DBRepositoryMongo<Chofer>.GetItemAsync(choferSeleccionado, "Choferes");
                    Chofer chofer = await ControladoraUsuarios.getInstance(_settings).getChofer(choferSeleccionado);

                    if (chofer != null)
                    {
                        vehiculo.Chofer = chofer;
                    }
                    chofer = chofer.Encriptar(chofer);
                    await DBRepositoryMongo <Vehiculo> .UpdateAsync(vehiculo.Id, vehiculo, "Vehiculos");

                    Vehiculo eliminar = null;
                    foreach (Vehiculo v in Vehiculos)
                    {
                        if (v.Id.ToString().Equals(idVehiculo))
                        {
                            if (v.Disponible && v.Items.Count > 0)// me fijo que no este en un viaje
                            {
                                eliminar = v;
                            }
                        }
                    }
                    if (eliminar != null)
                    {
                        Vehiculos.Remove(eliminar);
                        Vehiculos.Add(vehiculo);
                    }
                }
                else if (vehiculo != null && choferSeleccionado.Equals("000000000000000000000000"))
                {
                    vehiculo.Id       = new ObjectId(idVehiculo);
                    vehiculo.Unidades = calcularUnidades(vehiculo.Alto, vehiculo.Ancho, vehiculo.Largo);
                    vehiculo.Tipo     = tipoVehiculo;
                    vehiculo.Chofer   = new Chofer();
                    await DBRepositoryMongo <Vehiculo> .UpdateAsync(vehiculo.Id, vehiculo, "Vehiculos");

                    Vehiculo eliminar = null;
                    foreach (Vehiculo v in Vehiculos)
                    {
                        if (v.Id.ToString().Equals(idVehiculo))
                        {
                            eliminar = v;
                        }
                    }
                    Vehiculos.Remove(eliminar);
                    Vehiculos.Add(vehiculo);
                }
                else
                {
                    throw new MensajeException("Ha ocurrido un error inesperado, vuelva a intentarlo mas tarde");
                }
            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// guarda un nuevo vehiculo con o sin chofer. si no tiene chofer no queda disponible
        /// </summary>
        /// <param name="vehiculo"></param>
        /// <param name="idChofer"></param>
        /// <returns></returns>
        public async Task nuevoVehiculo(Vehiculo vehiculo, string idChofer)
        {
            try
            {
                if (vehiculo != null && !idChofer.Equals("000000000000000000000000"))
                {
                    Chofer chofer = await getChofer(idChofer);

                    chofer.Disponible   = false;
                    chofer              = chofer.Encriptar(chofer);
                    vehiculo.Chofer     = chofer;
                    vehiculo.Disponible = true;
                    vehiculo.Unidades   = calcularUnidades(vehiculo.Largo, vehiculo.Ancho, vehiculo.Alto);
                    Tarifa t = await ControladoraViajes.getInstancia(_settings).obtenerUltimaTarifa();

                    if (vehiculo.Tipo.Equals(TipoVehiculo.Camioneta))
                    {
                        vehiculo.Tarifa = t.Camioneta;
                    }
                    if (vehiculo.Tipo.Equals(TipoVehiculo.CamionChico))
                    {
                        vehiculo.Tarifa = t.CamionChico;
                    }
                    if (vehiculo.Tipo.Equals(TipoVehiculo.Camion))
                    {
                        vehiculo.Tarifa = t.Camion;
                    }
                    if (vehiculo.Tipo.Equals(TipoVehiculo.CamionGrande))
                    {
                        vehiculo.Tarifa = t.CamionGrande;
                    }
                    if (vehiculo.Tipo.Equals(TipoVehiculo.CamionMudanza))
                    {
                        vehiculo.Tarifa = t.CamionMudanza;
                    }
                    await DBRepositoryMongo <Vehiculo> .Create(vehiculo, "Vehiculos");

                    Vehiculos.Add(vehiculo);
                    await DBRepositoryMongo <Chofer> .UpdateAsync(chofer.Id, chofer, "Choferes");
                }
                else if (vehiculo != null && idChofer.Equals("000000000000000000000000"))
                {
                    Tarifa t = await ControladoraViajes.getInstancia(_settings).obtenerUltimaTarifa();

                    if (vehiculo.Tipo.Equals(TipoVehiculo.Camioneta))
                    {
                        vehiculo.Tarifa = t.Camioneta;
                    }
                    if (vehiculo.Tipo.Equals(TipoVehiculo.CamionChico))
                    {
                        vehiculo.Tarifa = t.CamionChico;
                    }
                    if (vehiculo.Tipo.Equals(TipoVehiculo.Camion))
                    {
                        vehiculo.Tarifa = t.Camion;
                    }
                    if (vehiculo.Tipo.Equals(TipoVehiculo.CamionGrande))
                    {
                        vehiculo.Tarifa = t.CamionGrande;
                    }
                    if (vehiculo.Tipo.Equals(TipoVehiculo.CamionMudanza))
                    {
                        vehiculo.Tarifa = t.CamionMudanza;
                    }
                    vehiculo.Chofer     = new Chofer();
                    vehiculo.Disponible = false;
                    vehiculo.Unidades   = calcularUnidades(vehiculo.Largo, vehiculo.Ancho, vehiculo.Alto);
                    await DBRepositoryMongo <Vehiculo> .Create(vehiculo, "Vehiculos");

                    Vehiculos.Add(vehiculo);
                }
                else
                {
                    throw new MensajeException("Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde");
                }
            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception e)
            {
                throw (e);
            }
        }
Example #10
0
 public void Inserta(Vehiculo v)
 {
     Vehiculos.Add(v);
 }