// GET: Roteiros/Create public ActionResult Create() { CreateEditRoteiroViewModel model = new CreateEditRoteiroViewModel(); model.Pontos = db.PontosInteresse.ToList().Where(p => p.Visivel.Equals(true)); return(View(model)); }
public ActionResult Create(CreateEditRoteiroViewModel model) { ModelState.Remove("model.Roteiro.Id"); if (model.PontosSeleccionados == null) { ModelState.AddModelError("", "Tem que seleccionar pelo menos um ponto de interesse."); model.Pontos = db.PontosInteresse.ToList().Where(p => p.Visivel.Equals(true)); return(View(model)); } if (ModelState.IsValid) { var roteiro = model.Roteiro; roteiro.PontosInteresse = new List <PontoRoteiro>(); foreach (var item in model.PontosSeleccionados) { roteiro.PontosInteresse.Add(new PontoRoteiro { Posicao = model.PontosSeleccionados.IndexOf(item) + 1, Ponto = db.PontosInteresse.FirstOrDefault(i => i.Id == item.IdPonto) });; } db.Roteiroes.Add(model.Roteiro); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(model)); }
public ActionResult Edit(CreateEditRoteiroViewModel model) { if (ModelState.IsValid) { var oldRoteiro = db.Roteiroes.Find(model.Roteiro.Id); foreach (var relacao in oldRoteiro.PontosInteresse.ToList()) { db.PontoRoteiro.Remove(relacao); } foreach (var ponto in model.PontosSeleccionados.OrderBy(p => p.Posicao)) { oldRoteiro.PontosInteresse.Add(new PontoRoteiro { Posicao = ponto.Posicao + 1, Ponto = db.PontosInteresse.FirstOrDefault(i => i.Id == ponto.IdPonto) }); } oldRoteiro.Nome = model.Roteiro.Nome; oldRoteiro.Descricao = model.Roteiro.Descricao; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(model)); }
public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Roteiro roteiro = db.Roteiroes.Find(id); if (roteiro == null) { return(HttpNotFound()); } var model = new CreateEditRoteiroViewModel(); model.PontosSeleccionados = new List <RoteiroPontoModel>(); model.Roteiro = roteiro; model.Pontos = db.PontosInteresse.ToList(); model.PontosGuardados = new List <PontosGuardados>(); foreach (var item in db.PontoRoteiro.Where(p => p.Roteiro.Id == id)) { var pt = new PontosGuardados() { IdPonto = item.Ponto.Id, Nome = item.Ponto.Nome }; model.PontosGuardados.Add(pt); } //var rotPontosModel = new RoteiroPontoModel(); //foreach (var item in roteiro.PontosInteresse) //{ // rotPontosModel.IdPonto = item.Ponto.Id; // rotPontosModel.Posicao = item.Posicao; // var result = model.PontosSeleccionados.Append(rotPontosModel); //} return(View(model)); //return RedirectToAction("Index"); }