public ActionResult Suspend(ViajeListViewModel viajeVm) { var viajeEnProceso = _dbContext.Viajes. SingleOrDefault(v => v.ViajeId == viajeVm.ViajeId); viajeEnProceso.Estado = EstadoViaje.Suspendido; using (var tran = _dbContext.Database.BeginTransaction()) { try { _dbContext.Entry(viajeEnProceso).State = EntityState.Modified; var autoEnViaje = _dbContext.Autos.SingleOrDefault(a => a.AutoId == viajeEnProceso.AutoId); autoEnViaje.Disponible = true; _dbContext.Entry(autoEnViaje).State = EntityState.Modified; _dbContext.SaveChanges(); tran.Commit(); TempData["Msg"] = "Viaje suspendido..."; return(RedirectToAction("Index")); } catch (Exception) { ModelState.AddModelError(String.Empty, "Error al intentar suspender un viaje"); tran.Rollback(); return(View(viajeVm)); } } }
public ActionResult Suspend(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Viaje viaje = _dbContext.Viajes .Include(v => v.Auto) .Include(v => v.Usuario) .SingleOrDefault(v => v.ViajeId == id); if (viaje == null && viaje.Estado != EstadoViaje.EnProceso) { return(HttpNotFound("Código de viaje erróneo o viaje no En Proceso...")); } var viajeVm = new ViajeListViewModel { ViajeId = viaje.ViajeId, MovilId = viaje.Auto.MovilId, Cliente = viaje.Usuario.NombreApellido, FechaHoraSalida = viaje.FechaHoraSalida, EstadoViaje = viaje.Estado }; return(View(viajeVm)); }
private List <ViajeListViewModel> ConstruirListaViajeListViewModel(List <Viaje> listaViajes) { List <ViajeListViewModel> listaVm = new List <ViajeListViewModel>(); foreach (var viaje in listaViajes) { ViajeListViewModel viajeVm = new ViajeListViewModel { ViajeId = viaje.ViajeId, MovilId = viaje.Auto.MovilId, Cliente = viaje.Usuario.NombreApellido, FechaHoraSalida = viaje.FechaHoraSalida, FechaHoraLlegada = viaje.FechaHoraLlegada, Costo = viaje.Costo, EstadoViaje = viaje.Estado }; listaVm.Add(viajeVm); } return(listaVm); }