3using Microsoft.EntityFrameworkCore;
28 .Include(m => m.ModuleLevels)
54 throw new InvalidOperationException($
"Modul med navn '{module.ModuleName}' finnes allerede.");
59 await
_db.SaveChangesAsync();
70 _db.ChangeTracker.Clear();
85 throw new InvalidOperationException($
"Modul med navn '{module.ModuleName}' finnes allerede.");
89 _db.Entry(module).State = EntityState.Modified;
90 module.
ModuleLevels.ForEach(ml =>
_db.Entry(ml).State =
_db.Entry(ml).Entity.ModuleLevelSeq != 0 ? EntityState.Modified : EntityState.Added);
92 await
_db.SaveChangesAsync();
94 _db.ChangeTracker.Clear();
107 var module = await
_db.
Modules.FindAsync(moduleSeq);
108 if (module ==
null)
throw new NullReferenceException($
"Module with id {moduleSeq} doesn't exist.");
109 module.IsActive =
false;
122 var module = await
_db.
Modules.FindAsync(moduleSeq);
123 if (module ==
null)
throw new NullReferenceException($
"Module with id {moduleSeq} doesn't exist.");
124 module.IsActive =
true;
137 if (module.
ModuleLevels.GroupBy(ml => ml.ModuleLevelName).Any(item => item.Skip(1).Any()))
138 throw new InvalidOperationException($
"Modulnivåer kan ikke ha samme navn.");
virtual List< ModuleLevel > ModuleLevels
ModuleService class inserts and updates Module in the Database
async Task< Module > GetModuleById(int id)
Read one Module with id from database
static void ModuleLevelDuplicateNamesCheck(Module module)
Checks if modulelevelname exist in Modulelevel table in database
async Task< Module > UpdateModule(Module module)
Updates changes on a Module in the database
ModuleService(DataContext db)
async Task< Module > AddModule(Module module)
Adds a Module to the database
async Task< Module > ActivateModule(int moduleSeq)
Activates a Module by setting IsActive attribute to true
async Task< Module > DeactivateModule(int moduleSeq)
Deactivated a Module by setting IsActive attribute to false
async Task< List< Module > > GetAllModules()
Read all Modules from database