[#43] BaseDataWindow: Do not use Context from ContextWindow any more
This commit is contained in:
@ -18,16 +18,16 @@ namespace Elwig.Windows {
|
||||
private bool _cultChanged = false;
|
||||
private bool _cultUpdate = false;
|
||||
|
||||
private void WineCultivationsInitEditing() {
|
||||
_cultList = new(Context.WineCultivations.OrderBy(c => c.Name).ToList());
|
||||
private async Task WineCultivationsInitEditing(AppDbContext ctx) {
|
||||
_cultList = new(await ctx.WineCultivations.OrderBy(c => c.Name).ToListAsync());
|
||||
_cults = _cultList.ToDictionary(c => c.CultId, c => (string?)c.CultId);
|
||||
_cultIds = _cultList.ToDictionary(c => c, c => c.CultId);
|
||||
ControlUtils.RenewItemsSource(WineCultivationList, _cultList, c => (c as WineCult)?.CultId);
|
||||
WineCultivationList_SelectionChanged(null, null);
|
||||
}
|
||||
|
||||
private void WineCultivationsFinishEditing() {
|
||||
ControlUtils.RenewItemsSource(WineCultivationList, Context.WineCultivations.OrderBy(c => c.Name).ToList(), c => (c as WineCult)?.CultId);
|
||||
private async Task WineCultivationsFinishEditing(AppDbContext ctx) {
|
||||
ControlUtils.RenewItemsSource(WineCultivationList, await ctx.WineCultivations.OrderBy(c => c.Name).ToListAsync(), c => (c as WineCult)?.CultId);
|
||||
_cultList = null;
|
||||
_cults = null;
|
||||
_cultIds = null;
|
||||
@ -37,31 +37,31 @@ namespace Elwig.Windows {
|
||||
WineCultivationDeleteButton.IsEnabled = false;
|
||||
}
|
||||
|
||||
private async Task WineCultivationsSave() {
|
||||
private async Task WineCultivationsSave(AppDbContext ctx) {
|
||||
if (!_cultChanged || _cultList == null || _cults == null || _cultIds == null)
|
||||
return;
|
||||
|
||||
foreach (var (cultid, _) in _cults.Where(c => c.Value == null)) {
|
||||
Context.Remove(Context.WineCultivations.Find(cultid));
|
||||
ctx.Remove(ctx.WineCultivations.Find(cultid)!);
|
||||
}
|
||||
foreach (var (cult, old) in _cultIds) {
|
||||
cult.CultId = old;
|
||||
}
|
||||
foreach (var (old, cultid) in _cults.Where(c => c.Value != null)) {
|
||||
Context.Update(Context.WineCultivations.Find(old));
|
||||
ctx.Update(ctx.WineCultivations.Find(old)!);
|
||||
}
|
||||
await Context.SaveChangesAsync();
|
||||
await ctx.SaveChangesAsync();
|
||||
|
||||
foreach (var (old, cultid) in _cults.Where(c => c.Value != null)) {
|
||||
await Context.Database.ExecuteSqlAsync($"UPDATE wine_cultivation SET cultid = {cultid} WHERE cultid = {old}");
|
||||
await ctx.Database.ExecuteSqlAsync($"UPDATE wine_cultivation SET cultid = {cultid} WHERE cultid = {old}");
|
||||
}
|
||||
await Context.SaveChangesAsync();
|
||||
await ctx.SaveChangesAsync();
|
||||
|
||||
foreach (var cult in _cultList.Where(c => !_cultIds.ContainsKey(c))) {
|
||||
if (cult.CultId == null) continue;
|
||||
await Context.AddAsync(cult);
|
||||
ctx.Add(cult);
|
||||
}
|
||||
await Context.SaveChangesAsync();
|
||||
await ctx.SaveChangesAsync();
|
||||
}
|
||||
|
||||
private void WineCultivationList_SelectionChanged(object? sender, SelectionChangedEventArgs? evt) {
|
||||
@ -82,7 +82,7 @@ namespace Elwig.Windows {
|
||||
private void WineCultivationAddButton_Click(object sender, RoutedEventArgs evt) {
|
||||
if (_cultList == null) return;
|
||||
_cultChanged = true;
|
||||
var item = Context.CreateProxy<WineCult>();
|
||||
var item = new WineCult { CultId = "", Name = "" };
|
||||
_cultList.Add(item);
|
||||
WineCultivationList.SelectedItem = item;
|
||||
UpdateButtons();
|
||||
|
Reference in New Issue
Block a user