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");
            }
        }