Escali License control 1
ModuleLevelViewModel.cs
Gå til dokumentasjonen til denne filen.
1using AutoMapper;
8using Microsoft.EntityFrameworkCore;
9
11{
13 {
16
17 public List<ModuleLevelClientModel>? ModuleLevels { get; set; }
18
19 public ModuleLevelViewModel(DataContext context, IMapper mapper, AlertService alertService)
20 {
22 _mapper = mapper;
23 _alertService = alertService;
24 }
25
26 public async Task GetModuleLevels()
27 {
28 var moduleLevels = await _modelLevelService.GetAllModuleLevels();
29 UpdateModuleLevels(_mapper.Map<List<ModuleLevelClientModel>>(moduleLevels));
30 }
31
32 public async Task<ModuleLevelClientModel?> AddModuleLevel(ModuleLevelClientModel moduleLevel)
33 {
34 var mapped = _mapper.Map<ModuleLevel>(moduleLevel);
35 try
36 {
37 var res = await _modelLevelService.AddModuleLevel(mapped);
38 _alertService.UpdateInfoMessage(new InfoMessage("Nytt modulnivå opprettet", InfoMessageType.SUCCESS));
39
40 var updatedModuleLevels = ModuleLevels ?? new List<ModuleLevelClientModel>();
41 updatedModuleLevels.Add(_mapper.Map<ModuleLevelClientModel>(res));
42
43 UpdateModuleLevels(updatedModuleLevels);
44 return _mapper.Map<ModuleLevelClientModel>(res);
45 }
46 catch (DbUpdateException e)
47 {
48 _alertService.UpdateInfoMessage(new InfoMessage("Det oppstod en feil i database.", InfoMessageType.ERROR));
49 return null;
50 }
51 }
52
53 private void UpdateModuleLevels(List<ModuleLevelClientModel> moduleLevels)
54 {
55 ModuleLevels = moduleLevels;
57 }
58
59 }
60}
InfoMessageType
var context
Definition: Program.cs:49
async void UpdateInfoMessage(InfoMessage msg)
Definition: AlertService.cs:12
void UpdateModuleLevels(List< ModuleLevelClientModel > moduleLevels)
ModuleLevelViewModel(DataContext context, IMapper mapper, AlertService alertService)
async Task< ModuleLevelClientModel?> AddModuleLevel(ModuleLevelClientModel moduleLevel)
ModuleLevelService class inserts and updates ModuleLevel in the Database
async Task< ModuleLevel > AddModuleLevel(ModuleLevel moduleLevel)
Adds a ModuleLevel to the database
async Task< List< ModuleLevel > > GetAllModuleLevels()
Read all ModuleLevels from database