Exemplo n.º 1
0
        public ActionResult CreationModification(ElementConnaissanceViewModel elementConnaissanceViewModel)
        {
            if (!ModelState.IsValid) return new HttpStatusCodeResult(HttpStatusCode.BadRequest);

            if (elementConnaissanceViewModel.ConnaissanceSousElements == null)
            {
                _db.SaveChanges();
                return RedirectToAction("Structure", "PlanCadre", new { elementConnaissanceViewModel.IdPlanCadre });
            }

            foreach (var element in elementConnaissanceViewModel.ConnaissanceSousElements)
            {
                if (element.ElementConnaissance.Description.IsNullOrWhiteSpace())
                {
                    if (element.ElementConnaissance.IdElementConnaissance != 0)
                    {
                        var dbElement = _db.ElementConnaissance.Find(element.ElementConnaissance.IdElementConnaissance);
                        if (dbElement != null) _db.ElementConnaissance.Remove(dbElement);
                    }

                    continue;
                }

                element.ElementConnaissance.IdPlanCadreElement = elementConnaissanceViewModel.IdPlanCadreElement;
                _db.ElementConnaissance.AddOrUpdate(element.ElementConnaissance);
                _db.SaveChanges();

                if (element.SousElementConnaissances == null) continue;
                foreach (var sousElementConnaissance in element.SousElementConnaissances)
                {
                    if (sousElementConnaissance.DescSousElement.IsNullOrWhiteSpace())
                    {
                        if (sousElementConnaissance.IdSousElement != 0)
                        {
                            var dbSousRessource = _db.SousElementConnaissance.Find(sousElementConnaissance.IdSousElement);
                            if (dbSousRessource != null) _db.SousElementConnaissance.Remove(dbSousRessource);
                        }
                        continue;
                    }

                    sousElementConnaissance.IdElementConnaissance = element.ElementConnaissance.IdElementConnaissance;
                    _db.SousElementConnaissance.AddOrUpdate(sousElementConnaissance);
                }
            }

            _db.SaveChanges();

            return RedirectToAction("Structure", "PlanCadre", new { elementConnaissanceViewModel.IdPlanCadre });
        }
        public ActionResult CreationModification(int?idPlanCadreElement)
        {
            if (idPlanCadreElement == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ElementConnaissanceViewModel elementConnaissanceViewModel = new ElementConnaissanceViewModel();

            elementConnaissanceViewModel.ConnaissanceSousElements = new List <ConnaissanceSousElement>();
            elementConnaissanceViewModel.IdPlanCadreElement       = (int)idPlanCadreElement;

            var planCadres = from planCadre in _db.PlanCadre
                             join planCadreCompetence in _db.PlanCadreCompetence on planCadre.IdPlanCadre equals planCadreCompetence.IdPlanCadre
                             join planCadreElement in _db.PlanCadreElement on planCadreCompetence.IdPlanCadreCompetence equals
                             planCadreElement.IdPlanCadreCompetence
                             where planCadreElement.IdPlanCadreElement == idPlanCadreElement
                             select planCadre;

            elementConnaissanceViewModel.IdPlanCadre = planCadres.First().IdPlanCadre;

            var elementConnaissances = from element in _db.ElementConnaissance
                                       where element.IdPlanCadreElement == idPlanCadreElement
                                       select element;

            foreach (var element in elementConnaissances)
            {
                var elementSousElement = new ConnaissanceSousElement();

                var sousElements = from sousElement in _db.SousElementConnaissance
                                   join elementConnaissance in _db.ElementConnaissance on sousElement.IdElementConnaissance equals elementConnaissance.IdElementConnaissance
                                   where elementConnaissance.IdElementConnaissance == element.IdElementConnaissance
                                   select sousElement;

                elementSousElement.ElementConnaissance = element;

                elementSousElement.SousElementConnaissances =
                    sousElements.Any() ? sousElements.ToList() : new List <SousElementConnaissance>();

                elementConnaissanceViewModel.ConnaissanceSousElements.Add(elementSousElement);
            }

            return(View(elementConnaissanceViewModel));
        }