Escali License control 1
AgreementViewModel.cs
Gå til dokumentasjonen til denne filen.
1using AutoMapper;
8using Microsoft.EntityFrameworkCore;
9
11{
13 {
14
17
18 public List<AgreementClientModel>? Agreements { get; private set; }
19 public AgreementViewModel(DataContext context, IMapper mapper, AlertService alertService)
20 {
22 _mapper = mapper;
23 _alertService = alertService;
24 }
25
26 public async Task GetAgreements()
27 {
28 var agreements = await _agreementService.GetAllAgreements();
29 UpdateAgreements(_mapper.Map<List<AgreementClientModel>>(agreements));
30 }
31
32 public async Task<AgreementClientModel?> CreateAgreement(AgreementClientModel agreementView)
33 {
34 var mapped = _mapper.Map<Agreement>(agreementView);
35 try
36 {
37 var res = await _agreementService.AddAgreement(mapped);
38 // _alertService.UpdateInfoMessage(new InfoMessage("Ny modul lagt til!", InfoMessageType.SUCCESS));
39
40 var updatedAgreements = Agreements ?? new List<AgreementClientModel>();
41 updatedAgreements.Add(_mapper.Map<AgreementClientModel>(res));
42
43 UpdateAgreements(updatedAgreements);
44 return _mapper.Map<AgreementClientModel>(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 catch (InvalidOperationException e)
52 {
54 return null;
55 }
56 }
57
58 public async Task<AgreementClientModel>? UpdateAgreement(AgreementClientModel agreementView)
59 {
60 var mapped = _mapper.Map<Agreement>(agreementView);
61 try
62 {
63 var res = await _agreementService.UpdateAgreement(mapped);
64 // _alertService.UpdateInfoMessage(new InfoMessage("Modul ble oppdatert!", InfoMessageType.SUCCESS));
65
66 var updatedAgreements = Agreements!.Select(m => m.AgreementSeq != agreementView.AgreementSeq ? m : _mapper.Map<AgreementClientModel>(res)).ToList();
67 UpdateAgreements(updatedAgreements);
68 return _mapper.Map<AgreementClientModel>(res);
69 }
70 catch (DbUpdateException e)
71 {
72 Logger.Error(e.InnerException.Message);
73 _alertService.UpdateInfoMessage(new InfoMessage("Det oppstod en feil i database.", InfoMessageType.ERROR));
74 return null;
75 }
76 catch (InvalidOperationException e)
77 {
78 Logger.Error(e.Message);
80 return null;
81 }
82 }
83
84 private void UpdateAgreements(List<AgreementClientModel> agreements)
85 {
86 Agreements = agreements;
88 }
89
90 }
91}
InfoMessageType
var context
Definition: Program.cs:49
async void UpdateInfoMessage(InfoMessage msg)
Definition: AlertService.cs:12
async? Task< AgreementClientModel > UpdateAgreement(AgreementClientModel agreementView)
void UpdateAgreements(List< AgreementClientModel > agreements)
async Task< AgreementClientModel?> CreateAgreement(AgreementClientModel agreementView)
AgreementViewModel(DataContext context, IMapper mapper, AlertService alertService)
AgreementService class inserts and updates Agreement in the Database
async Task< Agreement > UpdateAgreement(Agreement agreement)
Updates changes on a Agreement in the database
async Task< Agreement > AddAgreement(Agreement agreement)
Adds a Agreement to the database
async Task< List< Agreement > > GetAllAgreements()
Read all Agreements from database
Definition: Logger.cs:4
static void Error(string msg)
Definition: Logger.cs:11