AppDbContext: Move all calls to App.HintContextChange() outside of any AppDbContext block
All checks were successful
Test / Run tests (push) Successful in 2m44s

This commit is contained in:
2024-09-05 17:21:00 +02:00
parent 7437187630
commit 8d9172f91e
6 changed files with 180 additions and 169 deletions

View File

@ -53,7 +53,7 @@ namespace Elwig {
public static Dispatcher MainDispatcher { get; private set; }
private DateTime LastChanged;
private static DateTime CurrentLastWrite => File.GetLastWriteTime(Config.DatabaseFile);
private readonly DispatcherTimer ContextTimer = new() { Interval = TimeSpan.FromSeconds(5) };
private readonly DispatcherTimer ContextTimer = new() { Interval = TimeSpan.FromSeconds(2) };
public App() : base() {
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

View File

@ -100,9 +100,9 @@ namespace Elwig.Services {
}
public static async Task<int> UpdateAreaCommitment(this AreaComAdminViewModel vm, int? oldFbNr) {
using var ctx = new AppDbContext();
int newFbNr = (int)vm.FbNr!;
using (var ctx = new AppDbContext()) {
var a = new AreaCom {
FbNr = oldFbNr ?? newFbNr,
MgNr = (int)vm.MgNr!,
@ -134,6 +134,7 @@ namespace Elwig.Services {
if (newFbNr != a.FbNr) {
await ctx.Database.ExecuteSqlAsync($"UPDATE area_commitment SET fbnr = {newFbNr} WHERE fbnr = {oldFbNr}");
}
}
await App.HintContextChange();

View File

@ -502,8 +502,9 @@ namespace Elwig.Services {
}
public static async Task<int> UpdateMember(this MemberAdminViewModel vm, int? oldMgNr) {
using var ctx = new AppDbContext();
var newMgNr = (int)vm.MgNr!;
using (var ctx = new AppDbContext()) {
var m = new Member {
MgNr = oldMgNr ?? newMgNr,
PredecessorMgNr = vm.PredecessorMgNr,
@ -623,6 +624,7 @@ namespace Elwig.Services {
if (newMgNr != m.MgNr) {
await ctx.Database.ExecuteSqlAsync($"UPDATE member SET mgnr = {newMgNr} WHERE mgnr = {oldMgNr}");
}
}
await App.HintContextChange();

View File

@ -662,7 +662,7 @@ namespace Elwig.Windows {
private async void SaveButton_Click(object sender, RoutedEventArgs e) {
try {
using var ctx = new AppDbContext();
using (var ctx = new AppDbContext()) {
var origData = BillingData.FromJson(PaymentVar.Data);
var data = BillingData.FromGraphEntries(GraphEntries, origData, Utils.GetVaributes(ctx, Year),
AllVaributesAssigned, AllVaributesAssignedAbgew);
@ -670,6 +670,7 @@ namespace Elwig.Windows {
PaymentVar.Data = data.ToJsonString();
ctx.Update(PaymentVar);
await ctx.SaveChangesAsync();
}
LockContext = false;
await App.HintContextChange();
} catch (Exception exc) {

View File

@ -225,8 +225,9 @@ namespace Elwig.Windows {
private async void AddButton_Click(object sender, RoutedEventArgs evt) {
try {
using var ctx = new AppDbContext();
var v = new PaymentVar {
PaymentVar? v;
using (var ctx = new AppDbContext()) {
v = new PaymentVar {
Year = Year,
AvNr = await ctx.NextAvNr(Year),
Name = "Neue Auszahlungsvariante",
@ -237,6 +238,8 @@ namespace Elwig.Windows {
ctx.Add(v);
await ctx.SaveChangesAsync();
}
await App.HintContextChange();
ControlUtils.SelectItem(PaymentVariantList, v);
@ -250,8 +253,9 @@ namespace Elwig.Windows {
private async void CopyButton_Click(object sender, RoutedEventArgs evt) {
if (PaymentVariantList.SelectedItem is not PaymentVar orig) return;
try {
using var ctx = new AppDbContext();
var n = new PaymentVar {
PaymentVar? n;
using (var ctx = new AppDbContext()) {
n = new PaymentVar {
Year = orig.Year,
AvNr = await ctx.NextAvNr(Year),
Name = $"{orig.Name} (Kopie)",
@ -262,6 +266,8 @@ namespace Elwig.Windows {
ctx.Add(n);
await ctx.SaveChangesAsync();
}
await App.HintContextChange();
ControlUtils.SelectItem(PaymentVariantList, n);
@ -275,9 +281,10 @@ namespace Elwig.Windows {
private async void DeleteButton_Click(object sender, RoutedEventArgs evt) {
if (PaymentVariantList.SelectedItem is not PaymentVar v || !v.TestVariant) return;
try {
using var ctx = new AppDbContext();
using (var ctx = new AppDbContext()) {
ctx.Remove(v);
await ctx.SaveChangesAsync();
}
await App.HintContextChange();
} catch (Exception exc) {
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;

View File

@ -80,17 +80,17 @@ namespace Tests.HelperTests {
}
private Task<Dictionary<string, AreaComBucket>> GetMemberAreaCommitmentBuckets(int year, int mgnr) {
var ctx = new AppDbContext();
using var ctx = new AppDbContext();
return ctx.GetMemberAreaCommitmentBuckets(year, mgnr, Connection);
}
private Task<Dictionary<string, int>> GetMemberDeliveryBuckets(int year, int mgnr) {
var ctx = new AppDbContext();
using var ctx = new AppDbContext();
return ctx.GetMemberDeliveryBuckets(year, mgnr, Connection);
}
private Task<Dictionary<string, int>> GetMemberPaymentBuckets(int year, int mgnr) {
var ctx = new AppDbContext();
using var ctx = new AppDbContext();
return ctx.GetMemberPaymentBuckets(year, mgnr, Connection);
}