From 0333e8a5c5adeac49c707be7c32cfe0ebcce3c68 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Sun, 16 Apr 2023 11:21:30 +0200 Subject: [PATCH] Move some Utils functions to AppDbContext --- Elwig/Helpers/AppDbContext.cs | 24 +++++++++++++++++++++++ Elwig/Helpers/Utils.cs | 22 --------------------- Elwig/Helpers/Validator.cs | 6 +++--- Elwig/Windows/AreaCommAdminWindow.xaml.cs | 2 +- Elwig/Windows/MemberAdminWindow.xaml.cs | 2 +- 5 files changed, 29 insertions(+), 27 deletions(-) diff --git a/Elwig/Helpers/AppDbContext.cs b/Elwig/Helpers/AppDbContext.cs index 1167bb7..3d904da 100644 --- a/Elwig/Helpers/AppDbContext.cs +++ b/Elwig/Helpers/AppDbContext.cs @@ -1,5 +1,7 @@ using Microsoft.EntityFrameworkCore; using Elwig.Models; +using System.Linq; +using System.Threading.Tasks; namespace Elwig.Helpers { public class AppDbContext : DbContext { @@ -27,5 +29,27 @@ namespace Elwig.Helpers { optionsBuilder.UseLazyLoadingProxies(); base.OnConfiguring(optionsBuilder); } + + public async Task MgNrExists(int mgnr) { + return await Members.FindAsync(mgnr) != null; + } + + public async Task VNrExists(int vnr) { + return await Contracts.FindAsync(vnr) != null; + } + + public async Task NextMgNr() { + int c = await Members.Select(m => m.MgNr).MinAsync(); + (await Members.OrderBy(m => m.MgNr).Select(m => m.MgNr).ToListAsync()) + .ForEach(a => { if (a <= c + 100) c = a; }); + return c + 1; + } + + public async Task NextVNr() { + int c = await Contracts.Select(co => co.VNr).MinAsync(); + (await Contracts.OrderBy(co => co.VNr).Select(co => co.VNr).ToListAsync()) + .ForEach(a => { if (a <= c + 100) c = a; }); + return c + 1; + } } } diff --git a/Elwig/Helpers/Utils.cs b/Elwig/Helpers/Utils.cs index a68de9f..321d5d0 100644 --- a/Elwig/Helpers/Utils.cs +++ b/Elwig/Helpers/Utils.cs @@ -86,27 +86,5 @@ namespace Elwig.Helpers { UseShellExecute = true, }); } - - public static async Task MgNrExists(AppDbContext ctx, int mgnr) { - return await ctx.Members.FindAsync(mgnr) != null; - } - - public static async Task VNrExists(AppDbContext ctx, int vnr) { - return await ctx.Contracts.FindAsync(vnr) != null; - } - - public static async Task NextMgNr(AppDbContext ctx) { - int c = await ctx.Members.Select(m => m.MgNr).MinAsync(); - (await ctx.Members.OrderBy(m => m.MgNr).Select(m => m.MgNr).ToListAsync()) - .ForEach(a => { if (a <= c + 100) c = a; }); - return c + 1; - } - - public static async Task NextVNr(AppDbContext ctx) { - int c = await ctx.Contracts.Select(co => co.VNr).MinAsync(); - (await ctx.Contracts.OrderBy(co => co.VNr).Select(co => co.VNr).ToListAsync()) - .ForEach(a => { if (a <= c + 100) c = a; }); - return c + 1; - } } } diff --git a/Elwig/Helpers/Validator.cs b/Elwig/Helpers/Validator.cs index c5b5a65..01e252d 100644 --- a/Elwig/Helpers/Validator.cs +++ b/Elwig/Helpers/Validator.cs @@ -265,7 +265,7 @@ namespace Elwig.Helpers { } int nr = int.Parse(input.Text); - if (nr != m?.MgNr && Utils.MgNrExists(ctx, nr).GetAwaiter().GetResult()) { + if (nr != m?.MgNr && ctx.MgNrExists(nr).GetAwaiter().GetResult()) { return new(false, "Mitgliedsnummer wird bereits verwendet"); } @@ -278,7 +278,7 @@ namespace Elwig.Helpers { return res; } else if (!required && input.Text.Length == 0) { return new(true, null); - } else if (!Utils.MgNrExists(ctx, int.Parse(input.Text)).GetAwaiter().GetResult()) { + } else if (!ctx.MgNrExists(int.Parse(input.Text)).GetAwaiter().GetResult()) { return new(false, "Ein Mitglied mit dieser Mitgliedsnummer existiert nicht"); } @@ -304,7 +304,7 @@ namespace Elwig.Helpers { } int nr = int.Parse(input.Text); - if (nr != c?.VNr && Utils.VNrExists(ctx, nr).GetAwaiter().GetResult()) { + if (nr != c?.VNr && ctx.VNrExists(nr).GetAwaiter().GetResult()) { return new(false, "Vertragsnummer wird bereits verwendet"); } diff --git a/Elwig/Windows/AreaCommAdminWindow.xaml.cs b/Elwig/Windows/AreaCommAdminWindow.xaml.cs index e0c84d4..fd5a1e1 100644 --- a/Elwig/Windows/AreaCommAdminWindow.xaml.cs +++ b/Elwig/Windows/AreaCommAdminWindow.xaml.cs @@ -335,7 +335,7 @@ namespace Elwig.Windows { } private async void InitInputs() { - VNrInput.Text = ContractList.SelectedItem == null ? (await Utils.NextVNr(Context)).ToString() : ((Contract)ContractList.SelectedItem).VNr.ToString(); + VNrInput.Text = ContractList.SelectedItem == null ? (await Context.NextVNr()).ToString() : ((Contract)ContractList.SelectedItem).VNr.ToString(); MgNrInput.Text = member.MgNr.ToString(); FillOriginalValues(); ValidateRequiredInputs(); diff --git a/Elwig/Windows/MemberAdminWindow.xaml.cs b/Elwig/Windows/MemberAdminWindow.xaml.cs index 37866f5..450c784 100644 --- a/Elwig/Windows/MemberAdminWindow.xaml.cs +++ b/Elwig/Windows/MemberAdminWindow.xaml.cs @@ -94,7 +94,7 @@ namespace Elwig.Windows { } private async void InitInputs() { - MgNrInput.Text = (await Utils.NextMgNr(Context)).ToString(); + MgNrInput.Text = (await Context.NextMgNr()).ToString(); EntryDateInput.Text = DateTime.Now.ToString("dd.MM.yyyy"); if (Context.Branches.Count() == 1) BranchInput.SelectedItem = Context.Branches.First();