public async void PostRootData() { if (true) { int chek = _context.IdAi.Count(); // should be locked to 15 if (chek >= 15) { var row = await _context.IdAi.OrderBy(e => e.Id).FirstOrDefaultAsync(); var priceListId = await _context.IdAi.FindAsync(row.Id); IdAi test3 = await _context.IdAi.FirstOrDefaultAsync(x => x.PriceListDomainId == priceListId.PriceListDomainId); PriceListDomain test4 = await _context.PriceListDomains.FirstOrDefaultAsync(x => x.Id == priceListId.PriceListDomainId); if (test3 != null) { _context.IdAi.Remove(test3); await _context.SaveChangesAsync(); } RegistrationModelDomain test2 = new RegistrationModelDomain(); while (test2 != null) { test2 = await _context.RegistrationModelDomain.FirstOrDefaultAsync(x => x.PriceListDomainId == priceListId.PriceListDomainId); if (test2 != null) { _context.RegistrationModelDomain.Remove(test2); await _context.SaveChangesAsync(); } } ProviderAllDomain?test1 = new ProviderAllDomain(); while (test1 != null) { test1 = await _context.ProviderAllDomains.FirstOrDefaultAsync(x => x.PriceListDomainId == priceListId.PriceListDomainId); if (test1 != null) { _context.ProviderAllDomains.Remove(test1); await _context.SaveChangesAsync(); } else { break; } } if (test4 != null) { _context.PriceListDomains.Remove(test4); await _context.SaveChangesAsync(); } } else { Console.WriteLine("No need to delete stuff"); } // var client = _clientFactory.CreateClient("meta"); Rootobject rootobject = new Rootobject(); // rootobject = await client.GetFromJsonAsync<Rootobject>("v1.0/TravelPrices"); rootobject = await GetDataFromJson(); // outgoing data to db PriceListDomain priceList = new PriceListDomain(); IdAi aiid = new IdAi(); //rootobj priceList.Id = rootobject.Id; priceList.ValidUntil = rootobject.ValidUntil; //cheks if pricelist is dupicate or not var PriceIdChek = _context.PriceListDomains; List <string> PriceId = new List <string>(); foreach (var key in PriceIdChek) { PriceId.Add(key.Id); } if (!PriceId.Contains(rootobject.Id)) { _context.PriceListDomains.Add(priceList); // priceList = new PriceListDomain(); await _context.SaveChangesAsync(); aiid.PriceListDomainId = priceList.Id; _context.IdAi.Add(aiid); await _context.SaveChangesAsync(); ProviderAllDomain providerAll = new ProviderAllDomain(); for (int t = 0; t < rootobject.Legs.Length; t++) { for (int i = 0; i < rootobject.Legs[t].Providers.Length; i++) { providerAll.Distance = rootobject.Legs[t].RouteInfo.Distance; providerAll.PriceListDomainId = priceList.Id; providerAll.LegId = rootobject.Legs[t].Id; providerAll.RouteInfoId = rootobject.Legs[t].RouteInfo.Id; providerAll.From = rootobject.Legs[t].RouteInfo.From.Name; providerAll.FromId = rootobject.Legs[t].RouteInfo.From.Id; providerAll.To = rootobject.Legs[t].RouteInfo.To.Name; providerAll.ToId = rootobject.Legs[t].RouteInfo.To.Id; providerAll.ProviderId = rootobject.Legs[t].Providers[i].Id; providerAll.Price = rootobject.Legs[t].Providers[i].Price; providerAll.CompanyId = rootobject.Legs[t].Providers[i].Company.Id; providerAll.CompanyName = rootobject.Legs[t].Providers[i].Company.Name; providerAll.FlightStart = rootobject.Legs[t].Providers[i].FlightStart; providerAll.FlightEnd = rootobject.Legs[t].Providers[i].FlightEnd; _context.ProviderAllDomains.Add(providerAll); await _context.SaveChangesAsync(); } } } else { Console.WriteLine("this pricelist is allready in database"); } } }
///deletes last record based on AIID id public async void ChekAndDeleteOldPriceList() { int chek = _context.IdAi.Count(); // should be locked to 15 if (chek > 0) { // Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!"); var row = await _context.IdAi.OrderBy(e => e.Id).FirstOrDefaultAsync(); var priceListId = await _context.IdAi.FindAsync(row.Id); IdAi test3 = await _context.IdAi.FirstOrDefaultAsync(x => x.PriceListDomainId == priceListId.PriceListDomainId); PriceListDomain test4 = await _context.PriceListDomains.FirstOrDefaultAsync(x => x.Id == priceListId.PriceListDomainId); if (test3 != null) { _context.IdAi.Remove(test3); await _context.SaveChangesAsync(); } RegistrationModelDomain test2 = new RegistrationModelDomain(); while (test2 != null) { test2 = await _context.RegistrationModelDomain.FirstOrDefaultAsync(x => x.PriceListDomainId == priceListId.PriceListDomainId); if (test2 != null) { _context.RegistrationModelDomain.Remove(test2); await _context.SaveChangesAsync(); } } ProviderAllDomain?test1 = new ProviderAllDomain(); while (test1 != null) { test1 = await _context.ProviderAllDomains.FirstOrDefaultAsync(x => x.PriceListDomainId == priceListId.PriceListDomainId); if (test1 != null) { _context.ProviderAllDomains.Remove(test1); await _context.SaveChangesAsync(); } else { break; } } if (test4 != null) { _context.PriceListDomains.Remove(test4); await _context.SaveChangesAsync(); } } else { // Console.WriteLine("No need to delete stuff"); } }