Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b4d7068023 | |||
| bf7c9532d1 | |||
| f96ebdcf60 |
+2
-1
@@ -221,7 +221,8 @@ namespace Elwig {
|
|||||||
MainDispatcher.Invoke(() => {
|
MainDispatcher.Invoke(() => {
|
||||||
foreach (Window w in CurrentApp.Windows) {
|
foreach (Window w in CurrentApp.Windows) {
|
||||||
if (w is not ContextWindow c) continue;
|
if (w is not ContextWindow c) continue;
|
||||||
MainDispatcher.BeginInvoke(c.HintContextChange);
|
MainDispatcher.Invoke(c.HintContextChange);
|
||||||
|
MainDispatcher.BeginInvoke(c.TryContextReload);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,6 @@ namespace Elwig.Dialogs {
|
|||||||
ControlUtils.RenewItemsSource(DeliveryInput, await ctx.Deliveries
|
ControlUtils.RenewItemsSource(DeliveryInput, await ctx.Deliveries
|
||||||
.Where(d => d.DateString == $"{_delivery.Date:yyyy-MM-dd}" && d.ZwstId == _delivery.ZwstId)
|
.Where(d => d.DateString == $"{_delivery.Date:yyyy-MM-dd}" && d.ZwstId == _delivery.ZwstId)
|
||||||
.OrderBy(d => d.LsNr)
|
.OrderBy(d => d.LsNr)
|
||||||
.Include(d => d.Member)
|
|
||||||
.Include(d => d.Parts)
|
.Include(d => d.Parts)
|
||||||
.ToListAsync());
|
.ToListAsync());
|
||||||
if (DeliveryInput.SelectedItem == null)
|
if (DeliveryInput.SelectedItem == null)
|
||||||
|
|||||||
@@ -29,7 +29,11 @@ namespace Elwig.Documents {
|
|||||||
|
|
||||||
public static async Task<MemberDataSheet> Initialize(int mgnr) {
|
public static async Task<MemberDataSheet> Initialize(int mgnr) {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
return new MemberDataSheet(await ctx.Members.Include(m => m.EmailAddresses).Include(m => m.TelephoneNumbers).Where(m => m.MgNr == mgnr).SingleAsync());
|
return new MemberDataSheet(await ctx.Members
|
||||||
|
.Include(m => m.EmailAddresses)
|
||||||
|
.Include(m => m.TelephoneNumbers)
|
||||||
|
.Where(m => m.MgNr == mgnr)
|
||||||
|
.SingleAsync());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task LoadData(AppDbContext ctx) {
|
protected override async Task LoadData(AppDbContext ctx) {
|
||||||
|
|||||||
@@ -162,6 +162,10 @@ namespace Elwig.Helpers {
|
|||||||
modelBuilder.Entity<PaymentMember>().Navigation(c => c.Credit).AutoInclude();
|
modelBuilder.Entity<PaymentMember>().Navigation(c => c.Credit).AutoInclude();
|
||||||
modelBuilder.Entity<PaymentMember>().Navigation(c => c.Member).AutoInclude();
|
modelBuilder.Entity<PaymentMember>().Navigation(c => c.Member).AutoInclude();
|
||||||
modelBuilder.Entity<PaymentMember>().Navigation(c => c.Variant).AutoInclude();
|
modelBuilder.Entity<PaymentMember>().Navigation(c => c.Variant).AutoInclude();
|
||||||
|
modelBuilder.Entity<DeliveryAncmt>().Navigation(a => a.Member).AutoInclude();
|
||||||
|
modelBuilder.Entity<DeliveryAncmt>().Navigation(a => a.Schedule).AutoInclude();
|
||||||
|
modelBuilder.Entity<DeliveryAncmt>().Navigation(a => a.Variety).AutoInclude();
|
||||||
|
modelBuilder.Entity<DeliverySchedule>().Navigation(s => s.Branch).AutoInclude();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Dispose() {
|
public override void Dispose() {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Elwig.Helpers.Billing {
|
|||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
Season = ctx.Seasons.Find(Year)!;
|
Season = ctx.Seasons.Find(Year)!;
|
||||||
Attributes = ctx.WineAttributes.ToDictionary(a => a.AttrId, a => a.Name);
|
Attributes = ctx.WineAttributes.ToDictionary(a => a.AttrId, a => a.Name);
|
||||||
Modifiers = ctx.Modifiers.Where(m => m.Year == Year).Include(m => m.Season).ToDictionary(m => m.ModId, m => (m.Abs, m.Rel));
|
Modifiers = ctx.Modifiers.Where(m => m.Year == Year).ToDictionary(m => m.ModId, m => (m.Abs, m.Rel));
|
||||||
AreaComTypes = ctx.AreaCommitmentTypes.ToDictionary(v => v.VtrgId, v => (v.SortId, v.AttrId, v.Discriminator, v.MinKgPerHa, v.PenaltyAmount));
|
AreaComTypes = ctx.AreaCommitmentTypes.ToDictionary(v => v.VtrgId, v => (v.SortId, v.AttrId, v.Discriminator, v.MinKgPerHa, v.PenaltyAmount));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace Elwig.Helpers.Billing {
|
|||||||
public BillingVariant(int year, int avnr) : base(year) {
|
public BillingVariant(int year, int avnr) : base(year) {
|
||||||
AvNr = avnr;
|
AvNr = avnr;
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
PaymentVariant = ctx.PaymentVariants.Include(v => v.Season).Where(v => v.Year == Year && v.AvNr == AvNr).Single() ?? throw new ArgumentException("PaymentVar not found");
|
PaymentVariant = ctx.PaymentVariants.Where(v => v.Year == Year && v.AvNr == AvNr).Single();
|
||||||
Data = PaymentBillingData.FromJson(PaymentVariant.Data, Utils.GetVaributes(ctx, Year, onlyDelivered: false));
|
Data = PaymentBillingData.FromJson(PaymentVariant.Data, Utils.GetVaributes(ctx, Year, onlyDelivered: false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -860,7 +860,7 @@ namespace Elwig.Helpers.Export {
|
|||||||
["ried"] = p.Rd?.Name,
|
["ried"] = p.Rd?.Name,
|
||||||
["net_weight"] = p.IsNetWeight,
|
["net_weight"] = p.IsNetWeight,
|
||||||
["manual_weighing"] = p.IsManualWeighing,
|
["manual_weighing"] = p.IsManualWeighing,
|
||||||
["modids"] = new JsonArray(p.Modifiers.Select(m => (JsonNode)m.ModId).ToArray()),
|
["modids"] = new JsonArray(p.PartModifiers.Select(m => (JsonNode)m.ModId).ToArray()),
|
||||||
["comment"] = p.Comment,
|
["comment"] = p.Comment,
|
||||||
["created_at"] = $"{p.CreatedAt:yyyy-MM-ddTHH:mm:ssK}",
|
["created_at"] = $"{p.CreatedAt:yyyy-MM-ddTHH:mm:ssK}",
|
||||||
["modified_at"] = $"{p.ModifiedAt:yyyy-MM-ddTHH:mm:ssK}",
|
["modified_at"] = $"{p.ModifiedAt:yyyy-MM-ddTHH:mm:ssK}",
|
||||||
|
|||||||
@@ -28,12 +28,7 @@ namespace Elwig.Models.Dtos {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<DeliveryAncmtListData> FromQuery(IQueryable<DeliveryAncmt> query, List<string> filterNames) {
|
public static async Task<DeliveryAncmtListData> FromQuery(IQueryable<DeliveryAncmt> query, List<string> filterNames) {
|
||||||
return new((await query
|
return new((await query.ToListAsync()).Select(d => new DeliveryAncmtListRow(d)), filterNames);
|
||||||
.Include(a => a.Schedule.Branch)
|
|
||||||
.Include(a => a.Member)
|
|
||||||
.Include(a => a.Variety)
|
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync()).Select(d => new DeliveryAncmtListRow(d)), filterNames);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,12 +52,8 @@ namespace Elwig.Models.Dtos {
|
|||||||
if (mgnr != null) q = q.Where(p => p.Delivery.MgNr == mgnr);
|
if (mgnr != null) q = q.Where(p => p.Delivery.MgNr == mgnr);
|
||||||
await q
|
await q
|
||||||
.Include(p => p.Delivery)
|
.Include(p => p.Delivery)
|
||||||
.Include(p => p.Variety)
|
|
||||||
.Include(p => p.Attribute)
|
|
||||||
.Include(p => p.Quality)
|
|
||||||
.Include(p => p.Buckets)
|
.Include(p => p.Buckets)
|
||||||
.Include(p => p.PartModifiers)
|
.Include(p => p.PartModifiers).ThenInclude(m => m.Modifier)
|
||||||
.ThenInclude(m => m.Modifier)
|
|
||||||
.LoadAsync();
|
.LoadAsync();
|
||||||
return await table.FromSqlRaw($"""
|
return await table.FromSqlRaw($"""
|
||||||
SELECT p.*
|
SELECT p.*
|
||||||
|
|||||||
@@ -40,12 +40,7 @@ namespace Elwig.Models.Dtos {
|
|||||||
.Include(p => p.Delivery.Member.Branch)
|
.Include(p => p.Delivery.Member.Branch)
|
||||||
.Include(p => p.Delivery.Branch)
|
.Include(p => p.Delivery.Branch)
|
||||||
.Include(p => p.PartModifiers).ThenInclude(m => m.Modifier)
|
.Include(p => p.PartModifiers).ThenInclude(m => m.Modifier)
|
||||||
.Include(p => p.Variety)
|
|
||||||
.Include(p => p.Attribute)
|
|
||||||
.Include(p => p.Cultivation)
|
|
||||||
.Include(p => p.Origin)
|
.Include(p => p.Origin)
|
||||||
.Include(p => p.Quality)
|
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync()).Select(d => new DeliveryJournalRow(d)), filterNames);
|
.ToListAsync()).Select(d => new DeliveryJournalRow(d)), filterNames);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,13 +49,9 @@ namespace Elwig.Models.Dtos {
|
|||||||
public static async Task<MemberListData> FromQuery(IQueryable<Member> query, List<string> filterNames, IEnumerable<string> filterAreaCom) {
|
public static async Task<MemberListData> FromQuery(IQueryable<Member> query, List<string> filterNames, IEnumerable<string> filterAreaCom) {
|
||||||
var areaComs = await query.Include(m => m.AreaCommitments).ToDictionaryAsync(m => m.MgNr, m => Utils.ActiveAreaCommitments(m.AreaCommitments));
|
var areaComs = await query.Include(m => m.AreaCommitments).ToDictionaryAsync(m => m.MgNr, m => Utils.ActiveAreaCommitments(m.AreaCommitments));
|
||||||
return new((await query
|
return new((await query
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.Include(m => m.Branch)
|
.Include(m => m.Branch)
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.BillingAddress!.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.TelephoneNumbers)
|
.Include(m => m.TelephoneNumbers)
|
||||||
.Include(m => m.EmailAddresses)
|
.Include(m => m.EmailAddresses)
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync()).Select(m => new MemberListRow(m,
|
.ToListAsync()).Select(m => new MemberListRow(m,
|
||||||
areaComs[m.MgNr].Sum(c => c.Area),
|
areaComs[m.MgNr].Sum(c => c.Area),
|
||||||
areaComs[m.MgNr].Where(c => filterAreaCom.Contains(c.VtrgId)).GroupBy(c => c.VtrgId).ToDictionary(g => g.Key, g => g.Sum(c => c.Area)))),
|
areaComs[m.MgNr].Where(c => filterAreaCom.Contains(c.VtrgId)).GroupBy(c => c.VtrgId).ToDictionary(g => g.Key, g => g.Sum(c => c.Area)))),
|
||||||
|
|||||||
@@ -106,7 +106,10 @@ namespace Elwig.Models.Entities {
|
|||||||
[InverseProperty(nameof(DeliveryPart.Delivery))]
|
[InverseProperty(nameof(DeliveryPart.Delivery))]
|
||||||
public virtual ICollection<DeliveryPart> Parts { get; private set; } = null!;
|
public virtual ICollection<DeliveryPart> Parts { get; private set; } = null!;
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public IEnumerable<DeliveryPart> FilteredParts { get; set; } = [];
|
public IEnumerable<DeliveryPart> FilteredParts => PartFilter == null ? Parts : Parts.Where(p => PartFilter(p));
|
||||||
|
|
||||||
|
[NotMapped]
|
||||||
|
public Predicate<DeliveryPart>? PartFilter { get; set; }
|
||||||
|
|
||||||
public int Weight => Parts.Sum(p => p.Weight);
|
public int Weight => Parts.Sum(p => p.Weight);
|
||||||
public int FilteredWeight => FilteredParts.Sum(p => p.Weight);
|
public int FilteredWeight => FilteredParts.Sum(p => p.Weight);
|
||||||
|
|||||||
@@ -27,7 +27,9 @@ namespace Elwig.Models.Entities {
|
|||||||
public virtual ICollection<WbGem> Gems { get; private set; } = null!;
|
public virtual ICollection<WbGem> Gems { get; private set; } = null!;
|
||||||
|
|
||||||
[InverseProperty(nameof(Parent))]
|
[InverseProperty(nameof(Parent))]
|
||||||
public virtual ICollection<WineOrigin> Children { get; private set; } = null!;
|
public virtual ICollection<WineOrigin> RealChildren { get; private set; } = null!;
|
||||||
|
[NotMapped]
|
||||||
|
public List<WineOrigin> Children { get; private set; } = [];
|
||||||
|
|
||||||
public int Level => (Parent?.Level + 1) ?? 0;
|
public int Level => (Parent?.Level + 1) ?? 0;
|
||||||
|
|
||||||
|
|||||||
@@ -27,10 +27,7 @@ namespace Elwig.Services {
|
|||||||
|
|
||||||
public static async Task<Member?> GetMemberAsync(int mgnr) {
|
public static async Task<Member?> GetMemberAsync(int mgnr) {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
return await ctx.Members
|
return await ctx.Members.FirstOrDefaultAsync(m => m.MgNr == mgnr);
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.FirstOrDefaultAsync(m => m.MgNr == mgnr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Member? GetMember(int mgnr) {
|
public static Member? GetMember(int mgnr) {
|
||||||
@@ -71,7 +68,7 @@ namespace Elwig.Services {
|
|||||||
vm.IsNetWeight = p.IsNetWeight;
|
vm.IsNetWeight = p.IsNetWeight;
|
||||||
|
|
||||||
vm.Modifiers.Clear();
|
vm.Modifiers.Clear();
|
||||||
foreach (var m in p.Modifiers) {
|
foreach (var m in p.PartModifiers) {
|
||||||
vm.Modifiers.Add((Modifier)ControlUtils.GetItemFromSourceWithPk(vm.ModifiersSource, m.Year, m.ModId)!);
|
vm.Modifiers.Add((Modifier)ControlUtils.GetItemFromSourceWithPk(vm.ModifiersSource, m.Year, m.ModId)!);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -812,9 +809,6 @@ namespace Elwig.Services {
|
|||||||
.Select(p => p.Delivery)
|
.Select(p => p.Delivery)
|
||||||
.Distinct()
|
.Distinct()
|
||||||
.Include(d => d.Parts).ThenInclude(p => p.PartModifiers)
|
.Include(d => d.Parts).ThenInclude(p => p.PartModifiers)
|
||||||
.Include(d => d.Parts).ThenInclude(p => p.Rd)
|
|
||||||
.Include(d => d.Parts).ThenInclude(p => p.Kg!.Gl)
|
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
var wbKgs = list
|
var wbKgs = list
|
||||||
.SelectMany(d => d.Parts)
|
.SelectMany(d => d.Parts)
|
||||||
|
|||||||
@@ -509,10 +509,8 @@ namespace Elwig.Services {
|
|||||||
try {
|
try {
|
||||||
var members = await query
|
var members = await query
|
||||||
.OrderBy(m => m.MgNr)
|
.OrderBy(m => m.MgNr)
|
||||||
.Include(m => m.BillingAddress)
|
|
||||||
.Include(m => m.TelephoneNumbers)
|
.Include(m => m.TelephoneNumbers)
|
||||||
.Include(m => m.EmailAddresses)
|
.Include(m => m.EmailAddresses)
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
using var exporter = new VCard(d.FileName);
|
using var exporter = new VCard(d.FileName);
|
||||||
await exporter.ExportAsync(members);
|
await exporter.ExportAsync(members);
|
||||||
@@ -537,17 +535,12 @@ namespace Elwig.Services {
|
|||||||
try {
|
try {
|
||||||
var members = await query
|
var members = await query
|
||||||
.OrderBy(m => m.MgNr)
|
.OrderBy(m => m.MgNr)
|
||||||
.Include(m => m.BillingAddress)
|
|
||||||
.Include(m => m.TelephoneNumbers)
|
.Include(m => m.TelephoneNumbers)
|
||||||
.Include(m => m.EmailAddresses)
|
.Include(m => m.EmailAddresses)
|
||||||
.Include(m => m.DefaultWbKg!.Gl)
|
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
var areaComs = await query
|
var areaComs = await query
|
||||||
.SelectMany(m => m.AreaCommitments)
|
.SelectMany(m => m.AreaCommitments)
|
||||||
.Select(c => c.Contract).Distinct()
|
.Select(c => c.Contract).Distinct()
|
||||||
.Include(c => c.Rd)
|
|
||||||
.Include(c => c.Kg.Gl)
|
|
||||||
.Include(c => c.Revisions)
|
.Include(c => c.Revisions)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
var wbKgs = members
|
var wbKgs = members
|
||||||
|
|||||||
@@ -25,18 +25,13 @@ namespace Elwig.Services {
|
|||||||
var path = Path.Combine(App.TempPath, filename);
|
var path = Path.Combine(App.TempPath, filename);
|
||||||
var members = await query
|
var members = await query
|
||||||
.OrderBy(m => m.MgNr)
|
.OrderBy(m => m.MgNr)
|
||||||
.Include(m => m.BillingAddress)
|
|
||||||
.Include(m => m.TelephoneNumbers)
|
.Include(m => m.TelephoneNumbers)
|
||||||
.Include(m => m.EmailAddresses)
|
.Include(m => m.EmailAddresses)
|
||||||
.Include(m => m.DefaultWbKg!.Gl)
|
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
var areaComs = await query
|
var areaComs = await query
|
||||||
.SelectMany(m => m.AreaCommitments)
|
.SelectMany(m => m.AreaCommitments)
|
||||||
.Select(c => c.Contract).Distinct()
|
.Select(c => c.Contract).Distinct()
|
||||||
.OrderBy(c => c.FbNr)
|
.OrderBy(c => c.FbNr)
|
||||||
.Include(c => c.Rd)
|
|
||||||
.Include(c => c.Kg.Gl)
|
|
||||||
.Include(c => c.Revisions)
|
.Include(c => c.Revisions)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
var wbKgs = members
|
var wbKgs = members
|
||||||
@@ -73,10 +68,7 @@ namespace Elwig.Services {
|
|||||||
var list = await query
|
var list = await query
|
||||||
.Select(p => p.Delivery)
|
.Select(p => p.Delivery)
|
||||||
.Distinct()
|
.Distinct()
|
||||||
.Include(d => d.Parts).ThenInclude(p => p.PartModifiers).ThenInclude(m => m.Modifier)
|
.Include(d => d.Parts).ThenInclude(p => p.PartModifiers)
|
||||||
.Include(d => d.Parts).ThenInclude(p => p.Rd)
|
|
||||||
.Include(d => d.Parts).ThenInclude(p => p.Kg!.Gl)
|
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
var wbKgs = list
|
var wbKgs = list
|
||||||
.SelectMany(d => d.Parts)
|
.SelectMany(d => d.Parts)
|
||||||
@@ -114,27 +106,19 @@ namespace Elwig.Services {
|
|||||||
using (var ctx = new AppDbContext()) {
|
using (var ctx = new AppDbContext()) {
|
||||||
members = await ctx.Members
|
members = await ctx.Members
|
||||||
.Where(ChangedMembers)
|
.Where(ChangedMembers)
|
||||||
.Include(m => m.BillingAddress)
|
|
||||||
.Include(m => m.TelephoneNumbers)
|
.Include(m => m.TelephoneNumbers)
|
||||||
.Include(m => m.EmailAddresses)
|
.Include(m => m.EmailAddresses)
|
||||||
.Include(m => m.DefaultWbKg!.Gl)
|
|
||||||
.OrderBy(m => m.MgNr)
|
.OrderBy(m => m.MgNr)
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
areaComs = await ctx.AreaCommitmentContracts
|
areaComs = await ctx.AreaCommitmentContracts
|
||||||
.Where(ChangedAreaComContracts)
|
.Where(ChangedAreaComContracts)
|
||||||
.Include(c => c.Rd)
|
|
||||||
.Include(c => c.Kg.Gl)
|
|
||||||
.Include(c => c.Revisions)
|
.Include(c => c.Revisions)
|
||||||
.OrderBy(c => c.FbNr)
|
.OrderBy(c => c.FbNr)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
deliveries = await ctx.Deliveries
|
deliveries = await ctx.Deliveries
|
||||||
.Where(ChangedDeliveries)
|
.Where(ChangedDeliveries)
|
||||||
.Include(d => d.Parts).ThenInclude(p => p.PartModifiers).ThenInclude(m => m.Modifier)
|
.Include(d => d.Parts).ThenInclude(p => p.PartModifiers)
|
||||||
.Include(d => d.Parts).ThenInclude(p => p.Rd)
|
|
||||||
.Include(d => d.Parts).ThenInclude(p => p.Kg).ThenInclude(k => k!.Gl)
|
|
||||||
.OrderBy(d => d.DateString).ThenBy(d => d.TimeString).ThenBy(d => d.LsNr)
|
.OrderBy(d => d.DateString).ThenBy(d => d.TimeString).ThenBy(d => d.LsNr)
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
}
|
}
|
||||||
var wbKgs = members
|
var wbKgs = members
|
||||||
@@ -179,11 +163,8 @@ namespace Elwig.Services {
|
|||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
var deliveries = await ctx.Deliveries
|
var deliveries = await ctx.Deliveries
|
||||||
.Where(d => d.Year == year && d.ZwstId == App.ZwstId)
|
.Where(d => d.Year == year && d.ZwstId == App.ZwstId)
|
||||||
.Include(d => d.Parts).ThenInclude(p => p.PartModifiers).ThenInclude(m => m.Modifier)
|
.Include(d => d.Parts).ThenInclude(p => p.PartModifiers)
|
||||||
.Include(d => d.Parts).ThenInclude(p => p.Rd)
|
|
||||||
.Include(d => d.Parts).ThenInclude(p => p.Kg).ThenInclude(k => k!.Gl)
|
|
||||||
.OrderBy(d => d.DateString).ThenBy(d => d.TimeString).ThenBy(d => d.LsNr)
|
.OrderBy(d => d.DateString).ThenBy(d => d.TimeString).ThenBy(d => d.LsNr)
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
var wbKgs = deliveries
|
var wbKgs = deliveries
|
||||||
.SelectMany(d => d.Parts)
|
.SelectMany(d => d.Parts)
|
||||||
|
|||||||
@@ -349,7 +349,6 @@ namespace Elwig.Windows {
|
|||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
list = await ctx.PlzDestinations
|
list = await ctx.PlzDestinations
|
||||||
.Where(p => p.Plz == plz)
|
.Where(p => p.Plz == plz)
|
||||||
.Include(p => p.Ort)
|
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,20 +59,9 @@ namespace Elwig.Windows {
|
|||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
var (_, contractQuery, areaComQuery, filter) = await vm.GetFilters(ctx);
|
var (_, contractQuery, areaComQuery, filter) = await vm.GetFilters(ctx);
|
||||||
var contracts = await contractQuery
|
var contracts = await contractQuery
|
||||||
.Include(c => c.Kg.AtKg)
|
|
||||||
.Include(c => c.Rd!.Kg.AtKg)
|
|
||||||
.Include(c => c.Revisions).ThenInclude(a => a.WineCult)
|
|
||||||
.Include(c => c.Revisions).ThenInclude(a => a.AreaComType.WineAttr)
|
|
||||||
.Include(c => c.Revisions).ThenInclude(a => a.AreaComType.WineVar)
|
|
||||||
.Include(c => c.Revisions).ThenInclude(a => a.Member)
|
.Include(c => c.Revisions).ThenInclude(a => a.Member)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
var areaComs = await areaComQuery
|
var areaComs = await areaComQuery.ToListAsync();
|
||||||
.Include(c => c.Contract.Kg.AtKg)
|
|
||||||
.Include(c => c.Contract.Rd!.Kg.AtKg)
|
|
||||||
.Include(a => a.WineCult)
|
|
||||||
.Include(a => a.AreaComType.WineAttr)
|
|
||||||
.Include(a => a.AreaComType.WineVar)
|
|
||||||
.ToListAsync();
|
|
||||||
|
|
||||||
if (filter.Count > 0 && contracts.Count > 0) {
|
if (filter.Count > 0 && contracts.Count > 0) {
|
||||||
var dict = contracts.AsParallel()
|
var dict = contracts.AsParallel()
|
||||||
|
|||||||
@@ -21,8 +21,6 @@ namespace Elwig.Windows {
|
|||||||
private async Task AreaCommitmentTypesInitEditing(AppDbContext ctx) {
|
private async Task AreaCommitmentTypesInitEditing(AppDbContext ctx) {
|
||||||
_actList = new(await ctx.AreaCommitmentTypes
|
_actList = new(await ctx.AreaCommitmentTypes
|
||||||
.OrderBy(v => v.VtrgId)
|
.OrderBy(v => v.VtrgId)
|
||||||
.Include(t => t.WineVar)
|
|
||||||
.Include(t => t.WineAttr)
|
|
||||||
.ToListAsync());
|
.ToListAsync());
|
||||||
_acts = _actList.ToDictionary(v => v.VtrgId, v => (string?)v.VtrgId);
|
_acts = _actList.ToDictionary(v => v.VtrgId, v => (string?)v.VtrgId);
|
||||||
_actIds = _actList.ToDictionary(v => v, v => v.VtrgId);
|
_actIds = _actList.ToDictionary(v => v, v => v.VtrgId);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Elwig.Windows {
|
|||||||
private async Task BranchesInitEditing(AppDbContext ctx) {
|
private async Task BranchesInitEditing(AppDbContext ctx) {
|
||||||
_branchList = new(await ctx.Branches
|
_branchList = new(await ctx.Branches
|
||||||
.OrderBy(b => b.Name)
|
.OrderBy(b => b.Name)
|
||||||
.Include(b => b.PostalDest!.AtPlz)
|
.Include(b => b.PostalDest)
|
||||||
.ToListAsync());
|
.ToListAsync());
|
||||||
_branches = _branchList.ToDictionary(b => b.ZwstId, b => (string?)b.ZwstId);
|
_branches = _branchList.ToDictionary(b => b.ZwstId, b => (string?)b.ZwstId);
|
||||||
_branchIds = _branchList.ToDictionary(b => b, b => b.ZwstId);
|
_branchIds = _branchList.ToDictionary(b => b, b => b.ZwstId);
|
||||||
@@ -32,7 +32,7 @@ namespace Elwig.Windows {
|
|||||||
private async Task BranchesFinishEditing(AppDbContext ctx) {
|
private async Task BranchesFinishEditing(AppDbContext ctx) {
|
||||||
ControlUtils.RenewItemsSource(BranchList, await ctx.Branches
|
ControlUtils.RenewItemsSource(BranchList, await ctx.Branches
|
||||||
.OrderBy(b => b.Name)
|
.OrderBy(b => b.Name)
|
||||||
.Include(b => b.PostalDest!.AtPlz)
|
.Include(b => b.PostalDest)
|
||||||
.ToListAsync());
|
.ToListAsync());
|
||||||
_branchList = null;
|
_branchList = null;
|
||||||
_branches = null;
|
_branches = null;
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ namespace Elwig.Windows {
|
|||||||
ControlUtils.RenewItemsSource(SeasonList, await ctx.Seasons
|
ControlUtils.RenewItemsSource(SeasonList, await ctx.Seasons
|
||||||
.OrderByDescending(s => s.Year)
|
.OrderByDescending(s => s.Year)
|
||||||
.Include(s => s.Modifiers)
|
.Include(s => s.Modifiers)
|
||||||
.Include(s => s.Currency)
|
|
||||||
.ToListAsync());
|
.ToListAsync());
|
||||||
SeasonList_SelectionChanged(null, null);
|
SeasonList_SelectionChanged(null, null);
|
||||||
}
|
}
|
||||||
@@ -33,7 +32,6 @@ namespace Elwig.Windows {
|
|||||||
ControlUtils.RenewItemsSource(SeasonList, await ctx.Seasons
|
ControlUtils.RenewItemsSource(SeasonList, await ctx.Seasons
|
||||||
.OrderByDescending(s => s.Year)
|
.OrderByDescending(s => s.Year)
|
||||||
.Include(s => s.Modifiers)
|
.Include(s => s.Modifiers)
|
||||||
.Include(s => s.Currency)
|
|
||||||
.ToListAsync());
|
.ToListAsync());
|
||||||
_seasonChanged = false;
|
_seasonChanged = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -163,12 +163,11 @@ namespace Elwig.Windows {
|
|||||||
ControlUtils.RenewItemsSource(SeasonList, await ctx.Seasons
|
ControlUtils.RenewItemsSource(SeasonList, await ctx.Seasons
|
||||||
.OrderByDescending(s => s.Year)
|
.OrderByDescending(s => s.Year)
|
||||||
.Include(s => s.Modifiers)
|
.Include(s => s.Modifiers)
|
||||||
.Include(s => s.Currency)
|
|
||||||
.ToListAsync(), null, ControlUtils.RenewSourceDefault.First);
|
.ToListAsync(), null, ControlUtils.RenewSourceDefault.First);
|
||||||
var year = (SeasonList.SelectedItem as Season)?.Year;
|
var year = (SeasonList.SelectedItem as Season)?.Year;
|
||||||
ControlUtils.RenewItemsSource(BranchList, await ctx.Branches
|
ControlUtils.RenewItemsSource(BranchList, await ctx.Branches
|
||||||
.OrderBy(b => b.Name)
|
.OrderBy(b => b.Name)
|
||||||
.Include(b => b.PostalDest!.AtPlz)
|
.Include(b => b.PostalDest)
|
||||||
.ToListAsync(), null, ControlUtils.RenewSourceDefault.First);
|
.ToListAsync(), null, ControlUtils.RenewSourceDefault.First);
|
||||||
ControlUtils.RenewItemsSource(WineAttributeList, await ctx.WineAttributes
|
ControlUtils.RenewItemsSource(WineAttributeList, await ctx.WineAttributes
|
||||||
.OrderBy(a => a.Name)
|
.OrderBy(a => a.Name)
|
||||||
@@ -181,8 +180,6 @@ namespace Elwig.Windows {
|
|||||||
ControlUtils.RenewItemsSource(AreaCommitmentTypeWineAttributeInput, attrList);
|
ControlUtils.RenewItemsSource(AreaCommitmentTypeWineAttributeInput, attrList);
|
||||||
ControlUtils.RenewItemsSource(AreaCommitmentTypeList, await ctx.AreaCommitmentTypes
|
ControlUtils.RenewItemsSource(AreaCommitmentTypeList, await ctx.AreaCommitmentTypes
|
||||||
.OrderBy(t => t.VtrgId)
|
.OrderBy(t => t.VtrgId)
|
||||||
.Include(t => t.WineVar)
|
|
||||||
.Include(t => t.WineAttr)
|
|
||||||
.ToListAsync(), null, ControlUtils.RenewSourceDefault.First);
|
.ToListAsync(), null, ControlUtils.RenewSourceDefault.First);
|
||||||
ControlUtils.RenewItemsSource(WineCultivationList, await ctx.WineCultivations
|
ControlUtils.RenewItemsSource(WineCultivationList, await ctx.WineCultivations
|
||||||
.OrderBy(c => c.Name)
|
.OrderBy(c => c.Name)
|
||||||
|
|||||||
@@ -30,11 +30,19 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async void ForceContextReload(object sender, EventArgs evt) {
|
public async void ForceContextReload(object sender, EventArgs evt) {
|
||||||
await HintContextChange();
|
await ForceContextReload();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task HintContextChange() {
|
public async Task ForceContextReload() {
|
||||||
|
HintContextChange();
|
||||||
|
await TryContextReload();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void HintContextChange() {
|
||||||
_renewPending = true;
|
_renewPending = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task TryContextReload() {
|
||||||
if (LockContext) return;
|
if (LockContext) return;
|
||||||
await EnsureContextRenewed();
|
await EnsureContextRenewed();
|
||||||
}
|
}
|
||||||
@@ -49,9 +57,9 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
protected async Task EnsureContextRenewed() {
|
protected async Task EnsureContextRenewed() {
|
||||||
if (!_renewPending) return;
|
if (!_renewPending) return;
|
||||||
|
_renewPending = false;
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
await OnRenewContext(ctx);
|
await OnRenewContext(ctx);
|
||||||
_renewPending = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual protected async Task OnInit(AppDbContext ctx) { }
|
virtual protected async Task OnInit(AppDbContext ctx) { }
|
||||||
|
|||||||
@@ -428,7 +428,10 @@ namespace Elwig.Windows {
|
|||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
var (_, deliveryQuery, deliveryPartsQuery, predicate, filter) = await vm.GetFilters(ctx);
|
var (_, deliveryQuery, deliveryPartsQuery, predicate, filter) = await vm.GetFilters(ctx);
|
||||||
var deliveries = await deliveryQuery
|
var deliveries = await deliveryQuery
|
||||||
|
.Include(d => d.Parts).ThenInclude(p => p.PartModifiers).ThenInclude(m => m.Modifier)
|
||||||
.Include(d => d.Member.EmailAddresses)
|
.Include(d => d.Member.EmailAddresses)
|
||||||
|
.IgnoreAutoIncludes()
|
||||||
|
.AsSplitQuery()
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
deliveries.Reverse();
|
deliveries.Reverse();
|
||||||
|
|
||||||
@@ -443,11 +446,7 @@ namespace Elwig.Windows {
|
|||||||
.Select(a => a.Key)];
|
.Select(a => a.Key)];
|
||||||
}
|
}
|
||||||
|
|
||||||
var filteredParts = await deliveryPartsQuery
|
deliveries.ForEach(d => { d.PartFilter = predicate; });
|
||||||
.Include(p => p.PartModifiers).ThenInclude(p => p.Modifier)
|
|
||||||
.GroupBy(p => new { p.Year, p.DId })
|
|
||||||
.ToDictionaryAsync(g => (g.Key.Year, g.Key.DId), g => g.ToList());
|
|
||||||
deliveries.ForEach(d => { d.FilteredParts = filteredParts.GetValueOrDefault((d.Year, d.DId)) ?? []; });
|
|
||||||
|
|
||||||
var deliveryPartsNum = await deliveryPartsQuery.CountAsync();
|
var deliveryPartsNum = await deliveryPartsQuery.CountAsync();
|
||||||
var varieties = await deliveryPartsQuery.Select(d => d.SortId).Distinct().ToListAsync();
|
var varieties = await deliveryPartsQuery.Select(d => d.SortId).Distinct().ToListAsync();
|
||||||
@@ -542,8 +541,6 @@ namespace Elwig.Windows {
|
|||||||
var y = d?.Year ?? ViewModel.FilterSeason;
|
var y = d?.Year ?? ViewModel.FilterSeason;
|
||||||
ControlUtils.RenewItemsSource(MemberInput, await ctx.Members
|
ControlUtils.RenewItemsSource(MemberInput, await ctx.Members
|
||||||
.Where(m => m.IsActive || !IsCreating)
|
.Where(m => m.IsActive || !IsCreating)
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.OrderBy(m => m.Name)
|
.OrderBy(m => m.Name)
|
||||||
.ThenBy(m => m.GivenName)
|
.ThenBy(m => m.GivenName)
|
||||||
.ToListAsync());
|
.ToListAsync());
|
||||||
@@ -560,22 +557,22 @@ namespace Elwig.Windows {
|
|||||||
ControlUtils.RenewItemsSource(ModifiersInput, await ctx.Modifiers
|
ControlUtils.RenewItemsSource(ModifiersInput, await ctx.Modifiers
|
||||||
.Where(m => m.Year == y && (!IsCreating || m.IsActive))
|
.Where(m => m.Year == y && (!IsCreating || m.IsActive))
|
||||||
.OrderBy(m => m.Ordering)
|
.OrderBy(m => m.Ordering)
|
||||||
.Include(m => m.Season.Currency)
|
|
||||||
.ToListAsync());
|
.ToListAsync());
|
||||||
ControlUtils.RenewItemsSource(WineOriginInput, (await ctx.WineOrigins.Include(o => o.Parent).Include(o => o.Children).ToListAsync()).OrderByDescending(o => o.SortKey).ThenBy(o => o.HkId));
|
var origins = await ctx.WineOrigins.ToListAsync();
|
||||||
|
origins.ForEach(o => { origins.FirstOrDefault(p => p.HkId == o.ParentHkId)?.Children.Add(o); });
|
||||||
|
origins = [.. origins.OrderByDescending(o => o.SortKey).ThenBy(o => o.HkId)];
|
||||||
|
ControlUtils.RenewItemsSource(WineOriginInput, origins);
|
||||||
var kgList = (await ctx.Katastralgemeinden
|
var kgList = (await ctx.Katastralgemeinden
|
||||||
.Where(k => k.WbKg != null)
|
.Where(k => k.WbKg != null)
|
||||||
.Include(k => k.WbKg)
|
.Include(k => k.WbKg)
|
||||||
.Include(k => k.Gem.WbGem)
|
.Include(k => k.Gem.WbGem)
|
||||||
.OrderBy(k => k.Name)
|
.OrderBy(k => k.Name)
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync()).Cast<object>().ToList();
|
.ToListAsync()).Cast<object>().ToList();
|
||||||
kgList.Insert(0, new NullItem());
|
kgList.Insert(0, new NullItem());
|
||||||
ControlUtils.RenewItemsSource(WineKgInput, kgList);
|
ControlUtils.RenewItemsSource(WineKgInput, kgList);
|
||||||
UpdateRdInput();
|
UpdateRdInput();
|
||||||
if (IsCreating) await UpdateLsNr();
|
if (IsCreating) await UpdateLsNr();
|
||||||
|
|
||||||
await RefreshDeliveryParts();
|
|
||||||
RefreshInputs();
|
RefreshInputs();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -593,11 +590,7 @@ namespace Elwig.Windows {
|
|||||||
.Where(m => m.Year == d.Year && (!IsCreating || m.IsActive))
|
.Where(m => m.Year == d.Year && (!IsCreating || m.IsActive))
|
||||||
.OrderBy(m => m.Ordering)
|
.OrderBy(m => m.Ordering)
|
||||||
.ToListAsync());
|
.ToListAsync());
|
||||||
ControlUtils.RenewItemsSource(DeliveryPartList, await ctx.DeliveryParts
|
ControlUtils.RenewItemsSource(DeliveryPartList, d.Parts, DeliveryPartList_SelectionChanged, ControlUtils.RenewSourceDefault.First);
|
||||||
.Where(p => p.Year == d.Year && p.DId == d.DId)
|
|
||||||
.OrderBy(p => p.DPNr)
|
|
||||||
.Include(p => p.PartModifiers)
|
|
||||||
.ToListAsync(), DeliveryPartList_SelectionChanged, ControlUtils.RenewSourceDefault.First);
|
|
||||||
} else {
|
} else {
|
||||||
ControlUtils.RenewItemsSource(ModifiersInput, await ctx.Modifiers
|
ControlUtils.RenewItemsSource(ModifiersInput, await ctx.Modifiers
|
||||||
.Where(m => m.Year == ViewModel.FilterSeason && (!IsCreating || m.IsActive))
|
.Where(m => m.Year == ViewModel.FilterSeason && (!IsCreating || m.IsActive))
|
||||||
@@ -825,11 +818,12 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EmptyScale();
|
EmptyScale();
|
||||||
|
|
||||||
await EnsureContextRenewed();
|
await EnsureContextRenewed();
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
ControlUtils.SelectItem(DeliveryList, p?.Delivery);
|
ControlUtils.SelectItemWithPk(DeliveryList, p?.Year, p?.DId);
|
||||||
DeliveryPartList.SelectedItem = null;
|
DeliveryPartList.SelectedItem = null;
|
||||||
DeliveryPartList.ScrollIntoView(DeliveryPartList.ItemsSource.Cast<object>().Last());
|
DeliveryPartList.ScrollIntoView(DeliveryPartList.ItemsSource.Cast<object>().LastOrDefault());
|
||||||
InitialInputs();
|
InitialInputs();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -862,26 +856,22 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EmptyScale();
|
EmptyScale();
|
||||||
await EnsureContextRenewed();
|
|
||||||
if (p?.Delivery != null) {
|
|
||||||
try {
|
|
||||||
using var doc = await DeliveryNote.Initialize(p.Year, p.DId);
|
|
||||||
using (var ctx = new AppDbContext()) {
|
|
||||||
await doc.Generate(ctx);
|
|
||||||
}
|
|
||||||
if (App.Config.Debug) {
|
|
||||||
doc.Show();
|
|
||||||
} else {
|
|
||||||
await doc.Print(2);
|
|
||||||
}
|
|
||||||
} catch (Exception exc) {
|
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
Utils.RunBackground("Lieferschein drucken", async () => {
|
||||||
|
using var doc = await DeliveryNote.Initialize(p.Year, p.DId);
|
||||||
|
using (var ctx = new AppDbContext()) {
|
||||||
|
await doc.Generate(ctx);
|
||||||
|
}
|
||||||
|
if (App.Config.Debug) {
|
||||||
|
doc.Show();
|
||||||
|
} else {
|
||||||
|
await doc.Print(2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
await EnsureContextRenewed();
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
DeliveryList.SelectedItem = null;
|
DeliveryList.SelectedItem = null;
|
||||||
await EnsureContextRenewed();
|
|
||||||
InitInputs();
|
InitInputs();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -898,8 +888,6 @@ namespace Elwig.Windows {
|
|||||||
ControlUtils.RenewItemsSource(AttributeInput, attrList, null, ControlUtils.RenewSourceDefault.First);
|
ControlUtils.RenewItemsSource(AttributeInput, attrList, null, ControlUtils.RenewSourceDefault.First);
|
||||||
ControlUtils.RenewItemsSource(MemberInput, await ctx.Members
|
ControlUtils.RenewItemsSource(MemberInput, await ctx.Members
|
||||||
.Where(m => m.IsActive || !ViewModel.IsReceipt)
|
.Where(m => m.IsActive || !ViewModel.IsReceipt)
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.OrderBy(m => m.Name)
|
.OrderBy(m => m.Name)
|
||||||
.ThenBy(m => m.GivenName)
|
.ThenBy(m => m.GivenName)
|
||||||
.ToListAsync());
|
.ToListAsync());
|
||||||
@@ -940,12 +928,9 @@ namespace Elwig.Windows {
|
|||||||
ControlUtils.RenewItemsSource(ModifiersInput, await ctx.Modifiers
|
ControlUtils.RenewItemsSource(ModifiersInput, await ctx.Modifiers
|
||||||
.Where(m => m.Year == ViewModel.FilterSeason && m.IsActive)
|
.Where(m => m.Year == ViewModel.FilterSeason && m.IsActive)
|
||||||
.OrderBy(m => m.Ordering)
|
.OrderBy(m => m.Ordering)
|
||||||
.Include(m => m.Season.Currency)
|
|
||||||
.ToListAsync());
|
.ToListAsync());
|
||||||
ControlUtils.RenewItemsSource(MemberInput, await ctx.Members
|
ControlUtils.RenewItemsSource(MemberInput, await ctx.Members
|
||||||
.Where(m => m.IsActive || !ViewModel.IsReceipt)
|
.Where(m => m.IsActive || !ViewModel.IsReceipt)
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.OrderBy(m => m.Name)
|
.OrderBy(m => m.Name)
|
||||||
.ThenBy(m => m.GivenName)
|
.ThenBy(m => m.GivenName)
|
||||||
.ToListAsync());
|
.ToListAsync());
|
||||||
|
|||||||
@@ -85,7 +85,6 @@ namespace Elwig.Windows {
|
|||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
var list = await ctx.DeliverySchedules
|
var list = await ctx.DeliverySchedules
|
||||||
.Where(s => s.Year == ViewModel.FilterSeason)
|
.Where(s => s.Year == ViewModel.FilterSeason)
|
||||||
.Include(s => s.Branch)
|
|
||||||
.OrderBy(s => s.DateString)
|
.OrderBy(s => s.DateString)
|
||||||
.ThenBy(s => s.Branch.Name)
|
.ThenBy(s => s.Branch.Name)
|
||||||
.ThenBy(s => s.Description)
|
.ThenBy(s => s.Description)
|
||||||
@@ -110,12 +109,7 @@ namespace Elwig.Windows {
|
|||||||
var (filter, deliveryAncmts, stat) = await Task.Run(async () => {
|
var (filter, deliveryAncmts, stat) = await Task.Run(async () => {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
var (_, deliveryAncmtQuery, filter) = await vm.GetFilters(ctx);
|
var (_, deliveryAncmtQuery, filter) = await vm.GetFilters(ctx);
|
||||||
var deliveryAncmts = await deliveryAncmtQuery
|
var deliveryAncmts = await deliveryAncmtQuery.ToListAsync();
|
||||||
.Include(a => a.Member.BillingAddress)
|
|
||||||
.Include(a => a.Schedule)
|
|
||||||
.Include(a => a.Variety)
|
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync();
|
|
||||||
|
|
||||||
if (filter.Count > 0 && deliveryAncmts.Count > 0) {
|
if (filter.Count > 0 && deliveryAncmts.Count > 0) {
|
||||||
var dict = deliveryAncmts.AsParallel()
|
var dict = deliveryAncmts.AsParallel()
|
||||||
@@ -189,8 +183,6 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
ControlUtils.RenewItemsSource(MemberInput, await ctx.Members
|
ControlUtils.RenewItemsSource(MemberInput, await ctx.Members
|
||||||
.Where(m => m.IsActive || !IsCreating)
|
.Where(m => m.IsActive || !IsCreating)
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.OrderBy(m => m.Name)
|
.OrderBy(m => m.Name)
|
||||||
.ThenBy(m => m.GivenName)
|
.ThenBy(m => m.GivenName)
|
||||||
.ThenBy(m => m.MgNr)
|
.ThenBy(m => m.MgNr)
|
||||||
@@ -286,8 +278,6 @@ namespace Elwig.Windows {
|
|||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
ControlUtils.RenewItemsSource(MemberInput, await ctx.Members
|
ControlUtils.RenewItemsSource(MemberInput, await ctx.Members
|
||||||
.Where(m => m.IsActive || !IsCreating)
|
.Where(m => m.IsActive || !IsCreating)
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.OrderBy(m => m.Name)
|
.OrderBy(m => m.Name)
|
||||||
.ThenBy(m => m.GivenName)
|
.ThenBy(m => m.GivenName)
|
||||||
.ThenBy(m => m.MgNr)
|
.ThenBy(m => m.MgNr)
|
||||||
@@ -415,8 +405,6 @@ namespace Elwig.Windows {
|
|||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
ControlUtils.RenewItemsSource(MemberInput, await ctx.Members
|
ControlUtils.RenewItemsSource(MemberInput, await ctx.Members
|
||||||
.Where(m => m.IsActive || !IsCreating)
|
.Where(m => m.IsActive || !IsCreating)
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.OrderBy(m => m.Name)
|
.OrderBy(m => m.Name)
|
||||||
.ThenBy(m => m.GivenName)
|
.ThenBy(m => m.GivenName)
|
||||||
.ThenBy(m => m.MgNr)
|
.ThenBy(m => m.MgNr)
|
||||||
|
|||||||
@@ -47,8 +47,6 @@ namespace Elwig.Windows {
|
|||||||
var (_, deliveryScheduleQuery, filter) = await vm.GetFilters(ctx);
|
var (_, deliveryScheduleQuery, filter) = await vm.GetFilters(ctx);
|
||||||
var deliverySchedules = await deliveryScheduleQuery
|
var deliverySchedules = await deliveryScheduleQuery
|
||||||
.Include(s => s.Varieties)
|
.Include(s => s.Varieties)
|
||||||
.Include(s => s.Branch)
|
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
if (filter.Count > 0 && deliverySchedules.Count > 0) {
|
if (filter.Count > 0 && deliverySchedules.Count > 0) {
|
||||||
|
|||||||
@@ -207,13 +207,8 @@ namespace Elwig.Windows {
|
|||||||
.OrderBy(m => m.Name)
|
.OrderBy(m => m.Name)
|
||||||
.ThenBy(m => m.GivenName)
|
.ThenBy(m => m.GivenName)
|
||||||
.Include(m => m.Branch)
|
.Include(m => m.Branch)
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.Include(m => m.EmailAddresses)
|
.Include(m => m.EmailAddresses)
|
||||||
.Include(m => m.TelephoneNumbers)
|
.Include(m => m.TelephoneNumbers)
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.PostalDest.AtPlz!.Country)
|
|
||||||
.Include(m => m.BillingAddress!.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.BillingAddress!.PostalDest.AtPlz!.Country)
|
|
||||||
.ToListAsync(), MemberInput_SelectionChanged);
|
.ToListAsync(), MemberInput_SelectionChanged);
|
||||||
if (MemberCustomInput.SelectedItems.Count == 0) {
|
if (MemberCustomInput.SelectedItems.Count == 0) {
|
||||||
MemberCustomInput.SelectionChanged -= MemberInput_SelectionChanged;
|
MemberCustomInput.SelectionChanged -= MemberInput_SelectionChanged;
|
||||||
@@ -492,13 +487,8 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
Recipients = await query
|
Recipients = await query
|
||||||
.Include(m => m.Branch)
|
.Include(m => m.Branch)
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.Include(m => m.EmailAddresses)
|
.Include(m => m.EmailAddresses)
|
||||||
.Include(m => m.TelephoneNumbers)
|
.Include(m => m.TelephoneNumbers)
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.PostalDest.AtPlz!.Country)
|
|
||||||
.Include(m => m.BillingAddress!.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.BillingAddress!.PostalDest.AtPlz!.Country)
|
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
}
|
}
|
||||||
UpdatePostalEmailRecipients();
|
UpdatePostalEmailRecipients();
|
||||||
|
|||||||
@@ -121,14 +121,9 @@ namespace Elwig.Windows {
|
|||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
var (_, memberQuery, filter) = await vm.GetFilters(ctx);
|
var (_, memberQuery, filter) = await vm.GetFilters(ctx);
|
||||||
var members = await memberQuery
|
var members = await memberQuery
|
||||||
.Include(m => m.Branch)
|
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.Include(m => m.EmailAddresses)
|
.Include(m => m.EmailAddresses)
|
||||||
.Include(m => m.TelephoneNumbers)
|
.Include(m => m.TelephoneNumbers)
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
.AsSplitQuery()
|
||||||
.Include(m => m.PostalDest.AtPlz!.Country)
|
|
||||||
.Include(m => m.BillingAddress!.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.BillingAddress!.PostalDest.AtPlz!.Country)
|
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
if (filter.Count > 0 && members.Count > 0) {
|
if (filter.Count > 0 && members.Count > 0) {
|
||||||
|
|||||||
@@ -21,12 +21,11 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task OnRenewContext(AppDbContext ctx) {
|
protected override async Task OnRenewContext(AppDbContext ctx) {
|
||||||
var origins = (await ctx.WineOrigins
|
var origins = await ctx.WineOrigins
|
||||||
.Include("Gems.AtGem.Kgs.WbKg.Gl")
|
.Include(o => o.Gems).ThenInclude(g => g.AtGem.Kgs).ThenInclude(k => k.WbKg!.Gl)
|
||||||
.AsSplitQuery()
|
.ToListAsync();
|
||||||
.ToListAsync())
|
origins.ForEach(o => { origins.FirstOrDefault(p => p.HkId == o.ParentHkId)?.Children.Add(o); });
|
||||||
.OrderByDescending(o => o.SortKey)
|
origins = [.. origins.OrderByDescending(o => o.SortKey).ThenBy(o => o.HkId)];
|
||||||
.ThenBy(o => o.HkId);
|
|
||||||
ControlUtils.RenewItemsSource(WineOrigins, origins, WineOrigins_SelectionChanged);
|
ControlUtils.RenewItemsSource(WineOrigins, origins, WineOrigins_SelectionChanged);
|
||||||
if (WineOrigins.SelectedItem == null) {
|
if (WineOrigins.SelectedItem == null) {
|
||||||
var hkid = await ctx.WbKgs
|
var hkid = await ctx.WbKgs
|
||||||
@@ -39,8 +38,7 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
var gls = await ctx.WbGls
|
var gls = await ctx.WbGls
|
||||||
.OrderBy(g => g.GlNr)
|
.OrderBy(g => g.GlNr)
|
||||||
.Include("Kgs.Rds")
|
.Include(g => g.Kgs).ThenInclude(k => k.Rds)
|
||||||
.AsSplitQuery()
|
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
ControlUtils.RenewItemsSource(WbGls, gls, WbGls_SelectionChanged, ControlUtils.RenewSourceDefault.First);
|
ControlUtils.RenewItemsSource(WbGls, gls, WbGls_SelectionChanged, ControlUtils.RenewSourceDefault.First);
|
||||||
UpdateWbGems();
|
UpdateWbGems();
|
||||||
@@ -214,7 +212,7 @@ namespace Elwig.Windows {
|
|||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
ControlUtils.SelectItemWithPk(WbKgs, k.KgNr);
|
ControlUtils.SelectItemWithPk(WbKgs, k.KgNr);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
await HintContextChange();
|
await ForceContextReload();
|
||||||
var str = "Der Eintrag konnte nicht aus der Datenbank gelöscht werden!\n\n" + exc.Message;
|
var str = "Der Eintrag konnte nicht aus der Datenbank gelöscht werden!\n\n" + exc.Message;
|
||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Katastralgemeinde deaktivieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Katastralgemeinde deaktivieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ namespace Elwig.Windows {
|
|||||||
ControlUtils.RenewItemsSource(PaymentVariantList, await ctx.PaymentVariants
|
ControlUtils.RenewItemsSource(PaymentVariantList, await ctx.PaymentVariants
|
||||||
.Where(v => v.Year == Year)
|
.Where(v => v.Year == Year)
|
||||||
.OrderBy(v => v.AvNr)
|
.OrderBy(v => v.AvNr)
|
||||||
.Include(v => v.Season.Currency)
|
|
||||||
.ToListAsync());
|
.ToListAsync());
|
||||||
if (PaymentVariantList.SelectedItem == null && PaymentVariantList.Items.Count > 0) {
|
if (PaymentVariantList.SelectedItem == null && PaymentVariantList.Items.Count > 0) {
|
||||||
PaymentVariantList.SelectedIndex = PaymentVariantList.Items.Count - 1;
|
PaymentVariantList.SelectedIndex = PaymentVariantList.Items.Count - 1;
|
||||||
@@ -256,13 +255,13 @@ namespace Elwig.Windows {
|
|||||||
await ViewModel.UpdatePaymentVariant(v.Year, v.AvNr);
|
await ViewModel.UpdatePaymentVariant(v.Year, v.AvNr);
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
await HintContextChange();
|
await ForceContextReload();
|
||||||
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Auszahlungsvariante aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Auszahlungsvariante aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
await HintContextChange();
|
await EnsureContextRenewed();
|
||||||
CommentInput_TextChanged(null, null);
|
CommentInput_TextChanged(null, null);
|
||||||
DateInput_TextChanged(null, null);
|
DateInput_TextChanged(null, null);
|
||||||
TransferDateInput_TextChanged(null, null);
|
TransferDateInput_TextChanged(null, null);
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ namespace Tests.UnitTests.ServiceTests {
|
|||||||
.Include(d => d.Parts)
|
.Include(d => d.Parts)
|
||||||
.ThenInclude(p => p.PartModifiers)
|
.ThenInclude(p => p.PartModifiers)
|
||||||
.ThenInclude(m => m.Modifier)
|
.ThenInclude(m => m.Modifier)
|
||||||
.AsSplitQuery()
|
|
||||||
.FirstOrDefaultAsync();
|
.FirstOrDefaultAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ namespace Tests.UnitTests.ServiceTests {
|
|||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
vm.BranchSource = await ctx.Branches.ToListAsync();
|
vm.BranchSource = await ctx.Branches.ToListAsync();
|
||||||
vm.DefaultKgSource = await ctx.Katastralgemeinden.ToListAsync();
|
vm.DefaultKgSource = await ctx.Katastralgemeinden.ToListAsync();
|
||||||
vm.OrtSource = await ctx.PlzDestinations.Include(p => p.Ort).ToListAsync();
|
vm.OrtSource = await ctx.PlzDestinations.ToListAsync();
|
||||||
vm.BillingOrtSource = await ctx.PlzDestinations.Include(p => p.Ort).ToListAsync();
|
vm.BillingOrtSource = await ctx.PlzDestinations.ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
@@ -36,17 +36,13 @@ namespace Tests.UnitTests.ServiceTests {
|
|||||||
|
|
||||||
Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(null));
|
Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(null));
|
||||||
|
|
||||||
Member? m;
|
Member m;
|
||||||
using (var ctx = new AppDbContext()) {
|
using (var ctx = new AppDbContext()) {
|
||||||
m = await ctx.Members
|
m = await ctx.Members
|
||||||
.Where(m => m.MgNr == vm.MgNr)
|
.Where(m => m.MgNr == vm.MgNr)
|
||||||
.Include(m => m.BillingAddress!.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.Include(m => m.EmailAddresses)
|
.Include(m => m.EmailAddresses)
|
||||||
.Include(m => m.TelephoneNumbers)
|
.Include(m => m.TelephoneNumbers)
|
||||||
.AsSplitQuery()
|
.SingleAsync();
|
||||||
.FirstOrDefaultAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Assert.That(m, Is.Not.Null);
|
Assert.That(m, Is.Not.Null);
|
||||||
@@ -124,17 +120,13 @@ namespace Tests.UnitTests.ServiceTests {
|
|||||||
|
|
||||||
Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(null));
|
Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(null));
|
||||||
|
|
||||||
Member? m;
|
Member m;
|
||||||
using (var ctx = new AppDbContext()) {
|
using (var ctx = new AppDbContext()) {
|
||||||
m = await ctx.Members
|
m = await ctx.Members
|
||||||
.Where(m => m.MgNr == vm.MgNr)
|
.Where(m => m.MgNr == vm.MgNr)
|
||||||
.Include(m => m.BillingAddress!.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.Include(m => m.EmailAddresses)
|
.Include(m => m.EmailAddresses)
|
||||||
.Include(m => m.TelephoneNumbers)
|
.Include(m => m.TelephoneNumbers)
|
||||||
.AsSplitQuery()
|
.SingleAsync();
|
||||||
.FirstOrDefaultAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Assert.That(m, Is.Not.Null);
|
Assert.That(m, Is.Not.Null);
|
||||||
@@ -236,13 +228,9 @@ namespace Tests.UnitTests.ServiceTests {
|
|||||||
using (var ctx = new AppDbContext()) {
|
using (var ctx = new AppDbContext()) {
|
||||||
vm.FillInputs(await ctx.Members
|
vm.FillInputs(await ctx.Members
|
||||||
.Where(m => m.MgNr == 202)
|
.Where(m => m.MgNr == 202)
|
||||||
.Include(m => m.BillingAddress!.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.Include(m => m.EmailAddresses)
|
.Include(m => m.EmailAddresses)
|
||||||
.Include(m => m.TelephoneNumbers)
|
.Include(m => m.TelephoneNumbers)
|
||||||
.AsSplitQuery()
|
.SingleAsync());
|
||||||
.FirstAsync());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Assert.That(vm.IsActive, Is.True);
|
Assert.That(vm.IsActive, Is.True);
|
||||||
@@ -253,17 +241,13 @@ namespace Tests.UnitTests.ServiceTests {
|
|||||||
|
|
||||||
Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(202));
|
Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(202));
|
||||||
|
|
||||||
Member? m;
|
Member m;
|
||||||
using (var ctx = new AppDbContext()) {
|
using (var ctx = new AppDbContext()) {
|
||||||
m = await ctx.Members
|
m = await ctx.Members
|
||||||
.Where(m => m.MgNr == 202)
|
.Where(m => m.MgNr == 202)
|
||||||
.Include(m => m.BillingAddress!.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.Include(m => m.EmailAddresses)
|
.Include(m => m.EmailAddresses)
|
||||||
.Include(m => m.TelephoneNumbers)
|
.Include(m => m.TelephoneNumbers)
|
||||||
.AsSplitQuery()
|
.SingleAsync();
|
||||||
.FirstOrDefaultAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Assert.That(m, Is.Not.Null);
|
Assert.That(m, Is.Not.Null);
|
||||||
@@ -288,13 +272,9 @@ namespace Tests.UnitTests.ServiceTests {
|
|||||||
using (var ctx = new AppDbContext()) {
|
using (var ctx = new AppDbContext()) {
|
||||||
vm.FillInputs(await ctx.Members
|
vm.FillInputs(await ctx.Members
|
||||||
.Where(m => m.MgNr == 203)
|
.Where(m => m.MgNr == 203)
|
||||||
.Include(m => m.BillingAddress!.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.Include(m => m.EmailAddresses)
|
.Include(m => m.EmailAddresses)
|
||||||
.Include(m => m.TelephoneNumbers)
|
.Include(m => m.TelephoneNumbers)
|
||||||
.AsSplitQuery()
|
.SingleAsync());
|
||||||
.FirstAsync());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Assert.Multiple(() => {
|
Assert.Multiple(() => {
|
||||||
@@ -306,17 +286,13 @@ namespace Tests.UnitTests.ServiceTests {
|
|||||||
vm.MgNr = 210;
|
vm.MgNr = 210;
|
||||||
Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(203));
|
Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(203));
|
||||||
|
|
||||||
Member? m;
|
Member m;
|
||||||
using (var ctx = new AppDbContext()) {
|
using (var ctx = new AppDbContext()) {
|
||||||
m = await ctx.Members
|
m = await ctx.Members
|
||||||
.Where(m => m.MgNr == 210)
|
.Where(m => m.MgNr == 210)
|
||||||
.Include(m => m.BillingAddress!.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.PostalDest.AtPlz!.Ort)
|
|
||||||
.Include(m => m.DefaultWbKg!.AtKg)
|
|
||||||
.Include(m => m.EmailAddresses)
|
.Include(m => m.EmailAddresses)
|
||||||
.Include(m => m.TelephoneNumbers)
|
.Include(m => m.TelephoneNumbers)
|
||||||
.AsSplitQuery()
|
.SingleAsync();
|
||||||
.FirstOrDefaultAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Assert.That(m, Is.Not.Null);
|
Assert.That(m, Is.Not.Null);
|
||||||
|
|||||||
Reference in New Issue
Block a user