Escali License control 1
AgreementElementViewModel.cs
Gå til dokumentasjonen til denne filen.
1using AutoMapper;
8using Microsoft.EntityFrameworkCore;
9
11{
16 {
17
20
21 public List<AgreementElementClientModel>? AgreementElements { get; private set; }
22 public AgreementElementViewModel(DataContext context, IMapper mapper, AlertService alertService)
23 {
25 _mapper = mapper;
26 _alertService = alertService;
27 }
28
29 public async Task GetAgreementElements()
30 {
31 var agreementElements = await _agreementElementService.GetAllAgreementElements();
32 UpdateAgreementElements(_mapper.Map<List<AgreementElementClientModel>>(agreementElements));
33 }
34
35 public async Task<AgreementElementClientModel?> CreateAgreementElement(AgreementElementClientModel agreementElementView)
36 {
37 var mapped = _mapper.Map<AgreementElement>(agreementElementView);
38 try
39 {
40 var res = await _agreementElementService.AddAgreementElement(mapped);
41 _alertService.UpdateInfoMessage(new InfoMessage("Ny avtale opprettet", InfoMessageType.SUCCESS));
42
43 var updatedAgreementElements = AgreementElements ?? new List<AgreementElementClientModel>();
44 updatedAgreementElements.Add(_mapper.Map<AgreementElementClientModel>(res));
45
46 UpdateAgreementElements(updatedAgreementElements);
47 return _mapper.Map<AgreementElementClientModel>(res);
48 }
49 catch (DbUpdateException e)
50 {
51 _alertService.UpdateInfoMessage(new InfoMessage("Det oppstod en feil i database.", InfoMessageType.ERROR));
52 return null;
53 }
54 catch (InvalidOperationException e)
55 {
57 return null;
58 }
59 }
60
61 public async Task<AgreementElementClientModel>? UpdateAgreementElement(AgreementElementClientModel agreementElementView)
62 {
63 var mapped = _mapper.Map<AgreementElement>(agreementElementView);
64 try
65 {
67 // _alertService.UpdateInfoMessage(new InfoMessage("Modul ble oppdatert!", InfoMessageType.SUCCESS));
68
69 var updatedAgreementElements = AgreementElements!.Select(m => m.AgreementElementSeq != agreementElementView.AgreementElementSeq ? m : _mapper.Map<AgreementElementClientModel>(res)).ToList();
70 UpdateAgreementElements(updatedAgreementElements);
71 return _mapper.Map<AgreementElementClientModel>(res);
72 }
73 catch (DbUpdateException e)
74 {
75 Logger.Error(e.InnerException.Message);
76 _alertService.UpdateInfoMessage(new InfoMessage("Det oppstod en feil i database.", InfoMessageType.ERROR));
77 return null;
78 }
79 catch (InvalidOperationException e)
80 {
81 Logger.Error(e.Message);
83 return null;
84 }
85 }
86
87 private void UpdateAgreementElements(List<AgreementElementClientModel> agreementElements)
88 {
89 AgreementElements = agreementElements;
91 }
92
93 }
94}
InfoMessageType
var context
Definition: Program.cs:49
async void UpdateInfoMessage(InfoMessage msg)
Definition: AlertService.cs:12
AgreementElementViewService class has methods for creating and updating AgreementElements
AgreementElementViewModel(DataContext context, IMapper mapper, AlertService alertService)
void UpdateAgreementElements(List< AgreementElementClientModel > agreementElements)
async? Task< AgreementElementClientModel > UpdateAgreementElement(AgreementElementClientModel agreementElementView)
async Task< AgreementElementClientModel?> CreateAgreementElement(AgreementElementClientModel agreementElementView)
AgreementElementService class inserts and updates AgreementElement in the Database
async Task< AgreementElement > AddAgreementElement(AgreementElement agreementElement)
Adds a AgreementElement to the database
async Task< List< AgreementElement > > GetAllAgreementElements()
Read all AgreementElements from database
async Task< AgreementElement > UpdateAgreementElement(AgreementElement agreementElement)
Updates changes on a AgreementElement in the database
Definition: Logger.cs:4
static void Error(string msg)
Definition: Logger.cs:11