/// <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; } } } }
/// <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); } }