using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Elwig.Helpers.Billing { public class BillingVariant : Billing { private readonly int AvNr; public BillingVariant(int year, int avnr) : base(year) { AvNr = avnr; } protected async Task DeleteInDb() { using var cnx = await AppDbContext.ConnectAsync(); using (var cmd = cnx.CreateCommand()) { cmd.CommandText = $"DELETE FROM payment_delivery_part WHERE (year, avnr) = ({Year}, {AvNr})"; await cmd.ExecuteNonQueryAsync(); } using (var cmd = cnx.CreateCommand()) { cmd.CommandText = $"DELETE FROM payment_member WHERE (year, avnr) = ({Year}, {AvNr})"; await cmd.ExecuteNonQueryAsync(); } } public async Task CalculatePrices() { await DeleteInDb(); var tasks = new List(); foreach (var mgnr in Context.Members.Select(m => m.MgNr)) { tasks.Add(Task.Run(() => CalculateMemberPrices(mgnr))); } await Task.WhenAll(tasks); } protected async Task CalculateMemberPrices(int mgnr) { } } }