示例#1
0
        // To protect from overposting attacks, see https://aka.ms/RazorPagesCRUD
        public async Task <IActionResult> OnPostAsync(string[] selectedModule)
        {
            var newNiveau = new Niveau();

            if (selectedModule != null)
            {
                newNiveau.Module_Niveaus = new List <Module_Niveau>();
                foreach (var module in selectedModule)
                {
                    var moduleToAdd = new Module_Niveau
                    {
                        ModuleID = module
                    };
                    newNiveau.Module_Niveaus.Add(moduleToAdd);
                }
            }

            if (await TryUpdateModelAsync <Niveau>(
                    newNiveau,
                    "Niveau",
                    i => i.NiveauID,
                    i => i.TITRE,
                    i => i.ProfesseurID,
                    i => i.FILIERE
                    ))
            {
                _context.Niveaux.Add(newNiveau);
                await _context.SaveChangesAsync();

                return(RedirectToPage("./Index"));
            }
            PopulateNiveauHasModules(_context, newNiveau);
            return(Page());
        }
示例#2
0
        public void UpdateNiveauHasModules(EnsaContext context,
                                           string[] selectedModule, Niveau niveauToUpdate)
        {
            if (selectedModule == null)
            {
                niveauToUpdate.Module_Niveaus = new List <Module_Niveau>();
                return;
            }

            var selectedModuleHS = new HashSet <string>(selectedModule);
            var NiveauModules    = new HashSet <string>
                                       (niveauToUpdate.Module_Niveaus.Select(c => c.Module.ModuleID));

            foreach (var module in context.Modules)
            {
                if (selectedModuleHS.Contains(module.ModuleID.ToString()))
                {
                    if (!NiveauModules.Contains(module.ModuleID))
                    {
                        niveauToUpdate.Module_Niveaus.Add(
                            new Module_Niveau
                        {
                            NiveauID = niveauToUpdate.NiveauID,
                            ModuleID = module.ModuleID
                        });
                    }
                }
                else
                {
                    if (NiveauModules.Contains(module.ModuleID))
                    {
                        Module_Niveau moduleToRemove
                            = niveauToUpdate
                              .Module_Niveaus
                              .SingleOrDefault(i => i.ModuleID == module.ModuleID);
                        context.Remove(moduleToRemove);
                    }
                }
            }
        }