/// <summary> /// SE ELIMINA EL CHOFER Y SE ACTUALIZAN LOS VEHICULOS EN MEMORIA Y EN LA BD /// </summary> /// <param name="chofer"></param> /// <param name="id"></param> /// <returns></returns> public async Task EliminarChofer(Chofer chofer, string id) { try { if (chofer != null && id != null) { await DBRepositoryMongo<Usuario>.DeleteAsync(id, "Choferes"); var vehiculos = await ControladoraVehiculos.getInstance(_settings).getVehiculos(); List<Vehiculo> aux = vehiculos.ToList(); foreach (Vehiculo v in aux) { if (v.Chofer.Id.ToString().Equals(id)) { v.Chofer = new Chofer(); await ControladoraVehiculos.getInstance(_settings).editarVehiculo(v, v.Id.ToString(), v.Chofer.Id.ToString(), v.Tipo); // se acualiza el vehiculo en memoria y en la bd } } } 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> /// 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; } }