public ActionResult Create(ViewModels.ViewModelExcursion nuevaExcursion) { Excursion aux = (Excursion)Session["NuevaExcursion"]; Excursion nueva = new Excursion(); foreach (Estadia e in aux.ExcursionEstadias) { int ID = e.Id; Estadia AuxEstadia = db.Estadias.Find(ID); nueva.ExcursionEstadias.Add(AuxEstadia); } foreach (Transporte t in aux.ExcursionesTransportes) { int ID = t.Id; Transporte AuxTransporte = db.Transportes.Find(ID); nueva.ExcursionesTransportes.Add(AuxTransporte); } int estadias = 0; int transportes = 0; int duracion = 0; foreach (Estadia E in aux.ExcursionEstadias) { duracion = (E.Dias) + duracion; } foreach (Estadia E in aux.ExcursionEstadias) { estadias = ((E.Destino.Costo) * (E.Dias)) + estadias; } foreach (Transporte T in aux.ExcursionesTransportes) { transportes = T.Costo + transportes; } nueva.Costo = estadias + transportes; nueva.Activo = true; nueva.Duración = duracion; nueva.Descripcion = nuevaExcursion.Descripcion; nueva.Nombre = nuevaExcursion.Nombre; nueva.Cliente = db.Usuarios.Find(nuevaExcursion.Excursion.Cliente.Id); if (nueva.ExcursionEstadias.Count() == 0 && nueva.ExcursionesTransportes.Count() == 0) { return(RedirectToAction("Create")); } if (nueva.Cliente == null || nueva.Nombre == null || nueva.Descripcion == null) { return(RedirectToAction("Create")); } Session["NuevaExcursion"] = null; db.Excursiones.Add(nueva); db.SaveChanges(); return(RedirectToAction("Index")); }
// GET: Excursiones/Create public ActionResult Create() { Excursion nuevaExcursion = new Excursion(); if (Session["NuevaExcursion"] == null) { Session["NuevaExcursion"] = nuevaExcursion; } if (Session["NuevaExcursion"] != null) { nuevaExcursion = (Excursion)Session["NuevaExcursion"]; } if (Session["EstadiaNueva"] != null) { Estadia nuevaEstadia = db.Estadias.Find((int)Session["EstadiaNueva"]); Boolean agregarEstadia = true; foreach (Estadia e in nuevaExcursion.ExcursionEstadias) { if (e.Id == nuevaEstadia.Id) { agregarEstadia = false; } } if (agregarEstadia == true) { nuevaExcursion.ExcursionEstadias.Add(nuevaEstadia); } Session["EstadiaNueva"] = null; Session["NuevaExcursion"] = nuevaExcursion; } if (Session["EstadiaQuitar"] != null) { Estadia QuitarEstadia = db.Estadias.Find((int)Session["EstadiaQuitar"]); foreach (Estadia e in nuevaExcursion.ExcursionEstadias) { if (e.Id == QuitarEstadia.Id) { QuitarEstadia = e; } } nuevaExcursion.ExcursionEstadias.Remove(QuitarEstadia); int i = nuevaExcursion.ExcursionEstadias.Count(); Session["EstadiaQuitar"] = null; Session["NuevaExcursion"] = nuevaExcursion; } if (Session["TransporteNuevo"] != null) { Transporte nuevoTransporte = db.Transportes.Find((int)Session["TransporteNuevo"]); Boolean agregarTransporte = true; foreach (Transporte t in nuevaExcursion.ExcursionesTransportes) { if (t.Id == nuevoTransporte.Id) { agregarTransporte = false; } } if (agregarTransporte == true) { nuevaExcursion.ExcursionesTransportes.Add(nuevoTransporte); } Session["TransporteNuevo"] = null; Session["NuevaExcursion"] = nuevaExcursion; } if (Session["TransporteQuitar"] != null) { Transporte QuitarTransporte = db.Transportes.Find((int)Session["TransporteQuitar"]); foreach (Transporte t in nuevaExcursion.ExcursionesTransportes) { if (t.Id == QuitarTransporte.Id) { QuitarTransporte = t; } } nuevaExcursion.ExcursionesTransportes.Remove(QuitarTransporte); Session["TransporteQuitar"] = null; Session["NuevaExcursion"] = nuevaExcursion; } var model = new ViewModels.ViewModelExcursion() { Excursion = nuevaExcursion, Estadias = EstadiasController.GetEstadias(), Transportes = TransportesController.GetTransportes(), Clientes = UsuariosController.GetClientes() }; return(View(model)); }