Exemplo n.º 1
0
        /// <summary>
        /// SE MODIFICA EL PEON SELECCIONADO EN LA BD
        /// </summary>
        /// <param name="peon"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task ModificarPeon(Peon peon, string id)
        {
            try
            {
                if (peon != null && id != null)
                {
                    peon.Id = new ObjectId(id);
                    peon.Encriptar(peon);
                    await DBRepositoryMongo<Peon>.UpdateAsync(peon.Id, peon, "Peones");
                }
                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>
        /// se elimina el vehiculo y se actualiza el estado del chofer.
        /// </summary>
        /// <param name="id"></param>
        /// <param name="vehiculo"></param>
        /// <returns></returns>
        public async Task eliminarVehiculo(string id)
        {
            try
            {
                if (id != null)
                {
                    Vehiculo eliminar = await DBRepositoryMongo <Vehiculo> .GetItemAsync(id, "Vehiculos");

                    await DBRepositoryMongo <Vehiculo> .DeleteAsync(id, "Vehiculos");

                    Vehiculos.Remove(eliminar);
                    eliminar.Chofer.Disponible = true;
                    await DBRepositoryMongo <Chofer> .UpdateAsync(eliminar.Chofer.Id, eliminar.Chofer, "Choferes");
                }
                else
                {
                    throw new MensajeException("Ha ocurrido un error inesperado vuelva a intentarlo mas tarde");
                }
            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// SE MODIFICA EL CLIENTE SELECCIONADO
        /// </summary>
        /// <param name="cliente"></param>
        /// <param name="id"></param>
        /// <param name="tarjeta"></param>
        /// <returns></returns>
        public async Task ModificarCliente(Cliente cliente, string id, TarjetaDeCredito tarjeta)
        {
            try
            {
                if (cliente != null && id != null)
                {
                    cliente.Id = new ObjectId(id);
                    cliente.Tarjeta = tarjeta;
                    cliente.Encriptar(cliente);
                    await DBRepositoryMongo<Cliente>.UpdateAsync(cliente.Id, cliente, "Clientes");
                }
                else
                {
                    throw new MensajeException("Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde");
                }

            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }
Exemplo n.º 4
0
 /// <summary>
 /// modifica un administrativo pasado como parametro
 /// </summary>
 /// <param name="usuario"></param>
 /// <param name="id"></param>
 /// <returns></returns>
 public async Task ModificarAdministrativo(Administrativo usuario, string id) 
 {
     try
     {
         if (usuario != null && id!=null)
         {
             usuario.Id = new ObjectId(id);
             if (usuario.Ubicacion == null)
             {
                 usuario.Ubicacion = new PosicionSatelital() { Latitud = "", Longitud = "" };
             }
             usuario = usuario.Encriptar(usuario);
             await DBRepositoryMongo<Usuario>.UpdateAsync(usuario.Id, usuario, "Administrativos");
         }
         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>
        /// actualiza las tarifas
        /// </summary>
        /// <param name="tarifa"></param>
        /// <returns></returns>
        public async Task actualizarTarifasVehiculos(Tarifa tarifa)
        {
            var vehiculos = await getVehiculos();

            List <Vehiculo> aux = vehiculos.ToList();

            foreach (Vehiculo v in aux)
            {
                if (v.Tipo == TipoVehiculo.Camioneta)
                {
                    v.Tarifa = tarifa.Camioneta;
                }
                if (v.Tipo == TipoVehiculo.CamionChico)
                {
                    v.Tarifa = tarifa.CamionChico;
                }
                if (v.Tipo == TipoVehiculo.Camion)
                {
                    v.Tarifa = tarifa.Camion;
                }
                if (v.Tipo == TipoVehiculo.CamionGrande)
                {
                    v.Tarifa = tarifa.CamionGrande;
                }
                if (v.Tipo == TipoVehiculo.CamionMudanza)
                {
                    v.Tarifa = tarifa.CamionMudanza;
                }
                v.Chofer = v.Chofer.Encriptar(v.Chofer);
                await DBRepositoryMongo <Vehiculo> .UpdateAsync(v.Id, v, "Vehiculos");

                foreach (Vehiculo veh in Vehiculos)
                {
                    if (veh.Id.ToString().Equals(v.ToString()))
                    {
                        veh.Tarifa = v.Tarifa;
                    }
                }
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// modifica el chofer pasado en la base. Se tienen en cuenta tambien los vehiculos en base y en memoria
        /// </summary>
        /// <param name="chofer"></param>
        /// <param name="idChofer"></param>
        /// <returns></returns>
        public async Task ModificarChofer(Chofer chofer, string idChofer)
        {
            try
            {
                if (chofer != null && idChofer != null)
                {
                    chofer.Id = new ObjectId(idChofer);
                    if (chofer.Ubicacion == null)
                    {
                        chofer.Ubicacion = new PosicionSatelital() { Latitud = "", Longitud = "" };
                    }
                    chofer = chofer.Encriptar(chofer);
                    await DBRepositoryMongo<Chofer>.UpdateAsync(chofer.Id, chofer, "Choferes");
                    Vehiculo v = await ControladoraVehiculos.getInstance(_settings).getVehiculoChofer(idChofer);
                    if (v != null)
                    {
                        v.Chofer = chofer.Encriptar(chofer);
                        await ControladoraVehiculos.getInstance(_settings).editarVehiculo(v, v.Id.ToString(), chofer.Id.ToString(), v.Tipo);
                    }
                }
                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>
        /// 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);
            }
        }