public ActionResult Create([Bind(Include = "ID,Turno,dataInicioPA,dataFimPA")] PlanoDeAtividades planoDeAtividades, string [] opcoesEscolhidasDeConc) { if (opcoesEscolhidasDeConc == null) { ModelState.AddModelError("", "Necessita escolher pelo menos uma Concretização para associar ao plano de atividades."); ViewBag.ListaObjetosDeConc = db.Concretizacao.OrderBy(f => f.dataInicioConcretizacao).ToList(); // devolver controlo à View return(View(planoDeAtividades)); } List <Concretizacao> listaDeObjetosDeConcEscolhidos = new List <Concretizacao>(); foreach (string item in opcoesEscolhidasDeConc) { Concretizacao c = db.Concretizacao.Find(Convert.ToInt32(item)); // adicioná-lo à lista listaDeObjetosDeConcEscolhidos.Add(c); } // adicionar a lista ao objeto de crianças planoDeAtividades.ListaDeObjetosDeConcretizacao = listaDeObjetosDeConcEscolhidos; if (ModelState.IsValid) { db.PlanoDeAtividades.Add(planoDeAtividades); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(planoDeAtividades)); }
public ActionResult Create([Bind(Include = "ID,Nome,Idade,Doencas,NumCC,NIF")] Criancas criancas, string[] opcoesEscolhidasDePA, string[] opcoesEscolhidasDePais) { /// avalia se o array com a lista das escolhas de objetos de PlanosDeAtividades associados ao objeto do tipo Criancas /// é nula, ou não. /// Só poderá avanção se NÃO for nula if (opcoesEscolhidasDePA == null) { ModelState.AddModelError("", "Necessita escolher pelo menos um PlanoDeAtividades para associar à criança."); // gerar a lista de objetos de PA que podem ser associados a Criança ViewBag.ListaObjetosDePA = db.PlanoDeAtividades.OrderBy(pa => pa.Turno).ToList(); ViewBag.ListaObjetosDePai = db.Pais.OrderBy(p => p.Nome).ToList(); ViewBag.PaiID = Session["pai"]; // devolver controlo à View return(View(criancas)); } List <PlanoDeAtividades> listaDeObjetosDePAEscolhidos = new List <PlanoDeAtividades>(); foreach (string item in opcoesEscolhidasDePA) { PlanoDeAtividades pa = db.PlanoDeAtividades.Find(Convert.ToInt32(item)); // adicioná-lo à lista listaDeObjetosDePAEscolhidos.Add(pa); } // adicionar a lista ao objeto de crianças criancas.ListaDeObjetosDePlanoDeAtividades = listaDeObjetosDePAEscolhidos; if (opcoesEscolhidasDePais == null) { ModelState.AddModelError("", "Necessita escolher o pai para associar à criança."); ViewBag.ListaObjetosDePai = db.Pais.OrderBy(p => p.Nome).ToList(); ViewBag.ListaObjetosDePA = db.PlanoDeAtividades.OrderBy(pa => pa.Turno).ToList(); ViewBag.PaiID = Session["pai"]; // devolver controlo à View return(View(criancas)); } // criar um pai Pais pai = db.Pais.Find(Convert.ToInt32(opcoesEscolhidasDePais.First())); // adicionar o ID do pai ao PaiFK criancas.PaiFK = pai.ID; if (ModelState.IsValid) { db.Criancas.Add(criancas); db.SaveChanges(); return(RedirectToAction("Details", "Pais", new { id = Session["pai"] })); } return(View(criancas)); }
public ActionResult DeleteConfirmed(int id) { PlanoDeAtividades planoDeAtividades = db.PlanoDeAtividades.Find(id); db.PlanoDeAtividades.Remove(planoDeAtividades); db.SaveChanges(); return(RedirectToAction("Index")); }
// GET: PlanoDeAtividades/Details/5 public ActionResult Details(int?id) { if (id == null) { return(RedirectToAction("Index")); } PlanoDeAtividades planoDeAtividades = db.PlanoDeAtividades.Find(id); if (planoDeAtividades == null) { return(RedirectToAction("Index")); } return(View(planoDeAtividades)); }
public ActionResult Edit(int?id) { if (id == null) { return(RedirectToAction("Index")); } PlanoDeAtividades planoDeAtividades = db.PlanoDeAtividades.Find(id); if (planoDeAtividades == null) { return(RedirectToAction("Index")); } ViewBag.ListaObjetosDeConc = db.Concretizacao.OrderBy(f => f.dataInicioConcretizacao).ToList(); return(View(planoDeAtividades)); }
public ActionResult Edit([Bind(Include = "ID,Turno,dataInicioPA,dataFimPA")] PlanoDeAtividades planoDeAtividades, string[] opcoesEscolhidasDeConc) { var pa = db.PlanoDeAtividades.Include(c => c.ListaDeObjetosDeConcretizacao).Where(c => c.ID == planoDeAtividades.ID).SingleOrDefault(); if (ModelState.IsValid) { pa.Turno = planoDeAtividades.Turno; pa.dataInicioPA = planoDeAtividades.dataInicioPA; pa.dataFimPA = planoDeAtividades.dataFimPA; } else { ViewBag.ListaObjetosDeConc = db.Concretizacao.OrderBy(f => f.dataInicioConcretizacao).ToList(); return(View(planoDeAtividades)); } // tentar fazer o UPDATE if (TryUpdateModel(pa, "", new string[] { nameof(pa.Turno), nameof(pa.dataInicioPA), nameof(pa.dataFimPA), nameof(pa.ListaDeObjetosDeConcretizacao) })) { var elementosDeConc = db.Concretizacao.ToList(); if (opcoesEscolhidasDeConc != null) { // se existirem opções escolhidas, vamos associá-las foreach (var cc in elementosDeConc) { if (opcoesEscolhidasDeConc.Contains(cc.ID.ToString())) { // se uma opção escolhida ainda não está associada, cria-se a associação if (!pa.ListaDeObjetosDeConcretizacao.Contains(cc)) { pa.ListaDeObjetosDeConcretizacao.Add(cc); } } else { // caso exista associação para uma opção que não foi escolhida, // remove-se essa associação pa.ListaDeObjetosDeConcretizacao.Remove(cc); } } } else { // não existem opções escolhidas! // vamos eliminar todas as associações foreach (var cc in elementosDeConc) { if (pa.ListaDeObjetosDeConcretizacao.Contains(cc)) { pa.ListaDeObjetosDeConcretizacao.Remove(cc); } } } } // guardar as alterações db.SaveChanges(); // devolver controlo à View return(RedirectToAction("Details")); }