Example #1
0
        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));
        }
Example #2
0
        public ActionResult DeleteConfirmed(int id)
        {
            Criancas criancas = db.Criancas.Find(id);

            db.Criancas.Remove(criancas);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #3
0
        // GET: Criancas/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index"));
            }
            Criancas criancas = db.Criancas.Find(id);

            if (criancas == null)
            {
                return(RedirectToAction("Index"));
            }
            return(View(criancas));
        }
Example #4
0
        // GET: Criancas/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index"));
            }
            Criancas criancas = db.Criancas.Find(id);

            if (criancas == null)
            {
                return(RedirectToAction("Index"));
            }
            ViewBag.PaiFK             = db.Criancas.Find(id).PaiFK;
            Session["pai"]            = id;
            ViewBag.ListaObjetosDePai = db.Pais.OrderBy(p => p.Nome).ToList();
            ViewBag.ListaObjetosDePA  = db.PlanoDeAtividades.OrderBy(pa => pa.Turno).ToList();
            return(View(criancas));
        }
Example #5
0
        public ActionResult Edit([Bind(Include = "ID,Nome,Idade,Doencas,NumCC,NIF")] Criancas criancas, string[] opcoesEscolhidasDePA, string [] opcoesEscolhidasDePais)
        {
            var cria = db.Criancas.Include(pa => pa.ListaDeObjetosDePlanoDeAtividades).Where(pa => pa.ID == criancas.ID).SingleOrDefault();



            if (ModelState.IsValid)
            {
                cria.Nome    = criancas.Nome;
                cria.Idade   = criancas.Idade;
                cria.Doencas = criancas.Doencas;
                cria.NumCC   = criancas.NumCC;
                cria.NIF     = criancas.NIF;
                cria.PaiFK   = db.Criancas.Find(criancas.ID).PaiFK;
            }
            else
            {
                ViewBag.PaiFK             = db.Criancas.Find(criancas.ID).PaiFK;
                Session["pai"]            = criancas.ID;
                ViewBag.ListaObjetosDePai = db.Pais.OrderBy(p => p.Nome).ToList();
                ViewBag.ListaObjetosDePA  = db.PlanoDeAtividades.OrderBy(pa => pa.Turno).ToList();
                return(View(criancas));
            }
            // tentar fazer o UPDATE
            if (TryUpdateModel(cria, "", new string[] { nameof(cria.Nome), nameof(cria.Idade), nameof(cria.Doencas), nameof(cria.NumCC), nameof(cria.NIF), nameof(cria.PaiFK), nameof(cria.ListaDeObjetosDePlanoDeAtividades) }))
            {
                var elementosDePA = db.PlanoDeAtividades.ToList();

                if (opcoesEscolhidasDePA != null)
                {
                    // se existirem opções escolhidas, vamos associá-las
                    foreach (var papa in elementosDePA)
                    {
                        if (opcoesEscolhidasDePA.Contains(papa.ID.ToString()))
                        {
                            // se uma opção escolhida ainda não está associada, cria-se a associação
                            if (!cria.ListaDeObjetosDePlanoDeAtividades.Contains(papa))
                            {
                                cria.ListaDeObjetosDePlanoDeAtividades.Add(papa);
                            }
                        }
                        else
                        {
                            // caso exista associação para uma opção que não foi escolhida,
                            // remove-se essa associação
                            cria.ListaDeObjetosDePlanoDeAtividades.Remove(papa);
                        }
                    }
                }
                else
                {
                    // não existem opções escolhidas!
                    // vamos eliminar todas as associações
                    foreach (var papa in elementosDePA)
                    {
                        if (cria.ListaDeObjetosDePlanoDeAtividades.Contains(papa))
                        {
                            cria.ListaDeObjetosDePlanoDeAtividades.Remove(papa);
                        }
                    }
                }
            }

            // guardar as alterações
            db.SaveChanges();

            // devolver controlo à View
            return(RedirectToAction("Details", "Criancas", new { id = criancas.ID }));
        }