public EsiDataMarketOrders(RawEsiMarketOrders orders)
        {
            if (orders == null)
            {
                this.Invalid = true;
                return;
            }

            Orders = orders;

            this.Id        = orders.typeId;
            this.Region    = orders.regionId;
            this.Timestamp = orders.Timestamp;
        }
        internal static void RequestMarketOrders()
        {
            if (EveSwaggerInterface.Working())
            {
                return;
            }

            var failedRequests = EveSwaggerInterface.GetFailedOrdersRequests();

            foreach (var failedRequest in failedRequests)
            {
                var esiType = EveSwaggerInterface.GetType(failedRequest.Id);
                if (esiType == null || !esiType.published)
                {
                    var type = EoiDataInterface.GetTypeById(failedRequest.Id);
                    if (type != null)
                    {
                        type.Invalid = true;
                        EoiDataInterface.CheckInvalid();
                    }
                }
            }

            EveSwaggerInterface.ClearFailedOrdersRequests();

            var assets = EoiDataInterface.GetAssets();

            foreach (var asset in assets)
            {
                RawEsiMarketOrders marketOrders = null;

                var region = Regions.GetTradehubRegionId(SolarSystems.GetSolarSystem(SettingsInterface.GlobalSettings.TradeHub));

                marketOrders = EveSwaggerInterface.GetMarketOrders(asset.Id, region);
                if (marketOrders != null)
                {
                    var esiDataMarketOrders = _marketOrders.FirstOrDefault(x => Equals(x.Orders, marketOrders));
                    if (esiDataMarketOrders == null)
                    {
                        var oldEsiDataMarketOrders = _marketOrders.FirstOrDefault(x => x.Id == marketOrders.typeId && x.Region == marketOrders.regionId);
                        if (oldEsiDataMarketOrders != null)
                        {
                            _marketOrders.Remove(oldEsiDataMarketOrders);
                        }

                        _marketOrders.Add(new EsiDataMarketOrders(marketOrders));
                    }
                }
            }

            var blueprints = EoiDataInterface.GetBlueprints();

            foreach (var blueprint in blueprints)
            {
                {
                    RawEsiMarketOrders marketOrders = null;

                    var region = Regions.GetTradehubRegionId(SolarSystems.GetSolarSystem(SettingsInterface.GlobalSettings.TradeHub));

                    marketOrders = EveSwaggerInterface.GetMarketOrders(blueprint.Id, region);
                    if (marketOrders != null)
                    {
                        var esiDataMarketOrders = _marketOrders.FirstOrDefault(x => Equals(x.Orders, marketOrders));
                        if (esiDataMarketOrders == null)
                        {
                            var oldEsiDataMarketOrders = _marketOrders.FirstOrDefault(x => x.Id == marketOrders.typeId && x.Region == marketOrders.regionId);
                            if (oldEsiDataMarketOrders != null)
                            {
                                _marketOrders.Remove(oldEsiDataMarketOrders);
                            }

                            _marketOrders.Add(new EsiDataMarketOrders(marketOrders));
                        }
                    }
                }

                foreach (var materials in blueprint.Materials)
                {
                    RawEsiMarketOrders marketOrders = null;

                    var region = Regions.GetTradehubRegionId(SolarSystems.GetSolarSystem(SettingsInterface.GlobalSettings.TradeHub));

                    marketOrders = EveSwaggerInterface.GetMarketOrders(materials.Id, region);
                    if (marketOrders != null)
                    {
                        var esiDataMarketOrders = _marketOrders.FirstOrDefault(x => Equals(x.Orders, marketOrders));
                        if (esiDataMarketOrders == null)
                        {
                            var oldEsiDataMarketOrders = _marketOrders.FirstOrDefault(x => x.Id == marketOrders.typeId && x.Region == marketOrders.regionId);
                            if (oldEsiDataMarketOrders != null)
                            {
                                _marketOrders.Remove(oldEsiDataMarketOrders);
                            }

                            _marketOrders.Add(new EsiDataMarketOrders(marketOrders));
                        }
                    }

                    if (region != Regions.TheForge)
                    {
                        marketOrders = EveSwaggerInterface.GetMarketOrders(materials.Id, Regions.TheForge);
                        if (marketOrders != null)
                        {
                            var esiDataMarketOrders = _marketOrders.FirstOrDefault(x => Equals(x.Orders, marketOrders));
                            if (esiDataMarketOrders == null)
                            {
                                var oldEsiDataMarketOrders = _marketOrders.FirstOrDefault(x => x.Id == marketOrders.typeId && x.Region == marketOrders.regionId);
                                if (oldEsiDataMarketOrders != null)
                                {
                                    _marketOrders.Remove(oldEsiDataMarketOrders);
                                }

                                _marketOrders.Add(new EsiDataMarketOrders(marketOrders));
                            }
                        }
                    }
                }

                foreach (var product in blueprint.Products)
                {
                    RawEsiMarketOrders marketOrders = null;

                    var region = Regions.GetTradehubRegionId(SolarSystems.GetSolarSystem(SettingsInterface.GlobalSettings.TradeHub));

                    marketOrders = EveSwaggerInterface.GetMarketOrders(product.Id, region);
                    if (marketOrders != null)
                    {
                        var esiDataMarketOrders = _marketOrders.FirstOrDefault(x => Equals(x.Orders, marketOrders));
                        if (esiDataMarketOrders == null)
                        {
                            var oldEsiDataMarketOrders = _marketOrders.FirstOrDefault(x => x.Id == marketOrders.typeId && x.Region == marketOrders.regionId);
                            if (oldEsiDataMarketOrders != null)
                            {
                                _marketOrders.Remove(oldEsiDataMarketOrders);
                            }

                            _marketOrders.Add(new EsiDataMarketOrders(marketOrders));
                        }
                    }

                    if (region != Regions.TheForge)
                    {
                        marketOrders = EveSwaggerInterface.GetMarketOrders(product.Id, Regions.TheForge);
                        if (marketOrders != null)
                        {
                            var esiDataMarketOrders = _marketOrders.FirstOrDefault(x => Equals(x.Orders, marketOrders));
                            if (esiDataMarketOrders == null)
                            {
                                var oldEsiDataMarketOrders = _marketOrders.FirstOrDefault(x => x.Id == marketOrders.typeId && x.Region == marketOrders.regionId);
                                if (oldEsiDataMarketOrders != null)
                                {
                                    _marketOrders.Remove(oldEsiDataMarketOrders);
                                }

                                _marketOrders.Add(new EsiDataMarketOrders(marketOrders));
                            }
                        }
                    }
                }
            }
        }