From 3318db42bac6e13dd8dbe2ebbdfa61992603de4f Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Wed, 22 Mar 2023 23:30:04 +0100 Subject: [PATCH] Make methods in Utils async --- Elwig/Helpers/Utils.cs | 12 +++++++----- Elwig/Helpers/Validator.cs | 5 +++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Elwig/Helpers/Utils.cs b/Elwig/Helpers/Utils.cs index 7fc0545..a422c33 100644 --- a/Elwig/Helpers/Utils.cs +++ b/Elwig/Helpers/Utils.cs @@ -7,6 +7,7 @@ using System.Windows; using System.Windows.Controls; using System.Diagnostics; using System.Windows.Controls.Primitives; +using Microsoft.EntityFrameworkCore; namespace Elwig.Helpers { public static class Utils { @@ -86,13 +87,14 @@ namespace Elwig.Helpers { }); } - public static bool MgNrExists(AppDbContext ctx, int mgnr) { - return ctx.Members.Find(mgnr) != null; + public static async Task MgNrExists(AppDbContext ctx, int mgnr) { + return await ctx.Members.FindAsync(mgnr) != null; } - public static int NextMgNr(AppDbContext ctx) { - int c = ctx.Members.Select(m => m.MgNr).Min(); - ctx.Members.OrderBy(m => m.MgNr).Select(m => m.MgNr).ToList().ForEach(a => { if (a <= c + 100) c = a; }); + 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; } } diff --git a/Elwig/Helpers/Validator.cs b/Elwig/Helpers/Validator.cs index 75d5e60..a192aff 100644 --- a/Elwig/Helpers/Validator.cs +++ b/Elwig/Helpers/Validator.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using System.Windows.Controls; using Elwig.Models; @@ -265,7 +266,7 @@ namespace Elwig.Helpers { } int nr = int.Parse(input.Text); - if (nr != m?.MgNr && Utils.MgNrExists(ctx, nr)) { + if (nr != m?.MgNr && Utils.MgNrExists(ctx, nr).GetAwaiter().GetResult()) { return new(false, "Mitgliedsnummer wird bereits verwendet"); } @@ -278,7 +279,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))) { + } else if (!Utils.MgNrExists(ctx, int.Parse(input.Text)).GetAwaiter().GetResult()) { return new(false, "Ein Mitglied mit dieser Mitgliedsnummer existiert nicht"); }