public async void FillSales() { var billDs = new BillDataService(); var rnd = new Random(); var dt = new DateTime(2019, 8, 6); var prodList = new List <int> { 1194 }; while (true) { dt = dt.AddDays(rnd.Next(2, 4)); if (dt >= new DateTime(2019, 9, 20)) { break; } var bill = new Bill { shop_id = 2, report_date = dt, sum = 0 }; var list = new List <Sale>(); foreach (var p in prodList) { var cost = costRepo.GetByProdId(p).FirstOrDefault(); var price = priceRepo.GetPriceByProdId(p); var sale = new Sale { prod_id = p, count = rnd.Next(1, 3), unit_id = (await prodRepo.GetByIdAsync(p))?.unit_id, cost = cost?.value ?? 0, price = price?.price ?? 0 }; sale.sum = price?.price != null ? (price.price.Value + rnd.Next(-100, 50)) * sale.count : (cost.value.Value + rnd.Next(500, 1000)) * sale.count; sale.profit = sale.sum - (sale.cost != 0 ? sale.cost * sale.count : sale.sum); list.Add(sale); } bill.Sales = list; bill.sum = bill.Sales.Sum(p => p.sum) + rnd.Next(-200, 50); var id = await billDs.Insert(bill); } }