internal static void UpdateBlueprints(string token, int userId) { if (string.IsNullOrWhiteSpace(token) || userId == 0) { return; } var blueprints = EveSwaggerInterface.GetBlueprints(token, userId); if (blueprints == null) { return; } foreach (var blueprint in blueprints) { //if (!SettingsInterface.GlobalSettings.ShowBlueprintCopies) { if (blueprint.runs != -1) { continue; } } var esiDataBlueprint = _blueprints.FirstOrDefault(x => x.Id == blueprint.type_id); if (esiDataBlueprint != null) { _blueprints.Remove(esiDataBlueprint); } _blueprints.Add(new EsiDataBlueprint(blueprint)); } }
internal static void SynchronizeCharacterOrders() { _eoiDataBlueprints.ForEach(x => x.ClearCharacterOrders()); var users = GetUsers(); foreach (var user in users) { var token = user.GetAccessToken(); if (token != null) { var esiCharacterOrders = EveSwaggerInterface.GetCharacterOrders(token, user.Id); if (esiCharacterOrders == null) { continue; } foreach (var order in esiCharacterOrders) { if (order.region_id.ToString() != Regions.GetTradehubRegionId(SolarSystems.GetSolarSystem(SettingsInterface.GlobalSettings.TradeHub))) { continue; } var eoiDataBlueprint = GetBlueprintByProduct(order.type_id); if (eoiDataBlueprint != null) { eoiDataBlueprint.AddCharacterOrder(order); } } } } }
internal static void RequestMarketHistory() { if (EveSwaggerInterface.Working()) { return; } var failedRequests = EveSwaggerInterface.GetFailedHistoryRequests(); foreach (var failedRequest in failedRequests) { var esiType = EveSwaggerInterface.GetType(failedRequest.Id); if (esiType == null || !esiType.published) { var product = EoiDataInterface.GetTypeById(failedRequest.Id); if (product != null) { product.Invalid = true; EoiDataInterface.CheckInvalid(); } } } EveSwaggerInterface.ClearFailedHistoryRequests(); var blueprints = EoiDataInterface.GetBlueprints(); foreach (var blueprint in blueprints) { foreach (var product in blueprint.Products) { RawEsiPriceHistory marketHistory = null; var region = Regions.GetTradehubRegionId(SolarSystems.GetSolarSystem(SettingsInterface.GlobalSettings.TradeHub)); marketHistory = EveSwaggerInterface.GetMarketHistory(product.Id, region); if (marketHistory != null) { var esiDataMarketHistory = _marketHistory.FirstOrDefault(x => Equals(x.History, marketHistory)); if (esiDataMarketHistory == null) { var oldEsiDataMarketHistory = _marketHistory.FirstOrDefault(x => x.Id == marketHistory.typeId && x.Region == marketHistory.regionId); if (oldEsiDataMarketHistory != null) { _marketHistory.Remove(oldEsiDataMarketHistory); } _marketHistory.Add(new EsiDataMarketHistory(marketHistory)); } } } } }
internal static void Init() { EveSwaggerInterface.Load(); if (_solarSystems == null) { EveSwaggerInterface.LoadSolarSystems(); } InitializePrices(); InitializeSystemCostIndices(); InitializeMarketHistory(); InitializeMarketOrders(); InitializeBlueprints(); InititalizeSolarSystems(); }
internal static void ImportMarketOrders(List <EsiDataMarketOrders> orders) { if (orders == null) { return; } if (_marketOrders == null) { _marketOrders = new List <EsiDataMarketOrders>(); } foreach (var h in orders) { _marketOrders.Add(h); } EveSwaggerInterface.AddMarketOrders(orders.Select(x => x.Orders).ToList()); }
internal static void ImportMarketHistory(List <EsiDataMarketHistory> history) { if (history == null) { return; } if (_marketHistory == null) { _marketHistory = new List <EsiDataMarketHistory>(); } foreach (var h in history) { _marketHistory.Add(h); } EveSwaggerInterface.AddMarketHistory(history.Select(x => x.History).ToList()); }
internal static void SynchronizeAssets() { foreach (var eoiDataAsset in _eoiDataAsset) { eoiDataAsset.Synchronized = false; eoiDataAsset.Reset(); } var users = GetUsers(); foreach (var user in users) { if (!user.SynchronizeAssets) { continue; } var token = user.GetAccessToken(); if (token != null) { var esiAssets = EveSwaggerInterface.GetAssets(token, user.Id); if (esiAssets == null) { user.SynchronizeAssets = false; continue; } foreach (var esiAsset in esiAssets) { if (esiAsset.is_singleton) { continue; } if (esiAsset.location_flag != "Unlocked" && esiAsset.location_flag != "Locked" && esiAsset.location_flag != "Cargo" && esiAsset.location_flag != "Deliveries" && esiAsset.location_flag != "Hangar" && esiAsset.location_flag != "HangarAll") { continue; } if (esiAsset.is_blueprint_copy) { continue; } var eoiDataAsset = _eoiDataAsset.FirstOrDefault(x => x.Id == esiAsset.type_id); if (eoiDataAsset == null) { eoiDataAsset = new EoiDataAsset(esiAsset); _eoiDataAsset.Add(eoiDataAsset); } else { eoiDataAsset.Synchronize(esiAsset); } eoiDataAsset.Synchronized = true; } } } var eoiDataAssetsToRemove = _eoiDataAsset.Where(x => x.Synchronized == false || x.GetQuantity() <= 0).ToList(); foreach (var asset in eoiDataAssetsToRemove) { foreach (var eoiAsset in asset.GetEoiAssets()) { EoiInterface.RemoveAsset(eoiAsset); } asset.Delete(); _eoiDataAsset.Remove(asset); } }
internal static void SynchronizeWallet() { var users = GetUsers(); foreach (var user in users) { if (!user.SynchronizeTransactions) { continue; } var token = user.GetAccessToken(); if (token != null) { // var balance = EveSwaggerInterface.GetWalletBalance(token, user.Id); var transactions = EveSwaggerInterface.GetWalletTransactions(token, user.Id); if (transactions == null) { user.SynchronizeTransactions = false; continue; } foreach (var transaction in transactions) { if (!transaction.is_buy) { continue; } var eoiDataAsset = _eoiDataAsset.FirstOrDefault(x => x.Id == transaction.type_id); if (eoiDataAsset != null) { eoiDataAsset.AddTransaction(transaction); } } } } var eoiDataAssets = _eoiDataAsset.ToList(); foreach (var asset in eoiDataAssets) { asset.Clean(); if (!asset.HasPrice()) { foreach (var eoiAsset in asset.GetEoiAssets()) { EoiInterface.RemoveAsset(eoiAsset); } asset.Delete(); _eoiDataAsset.Remove(asset); } else { asset.UpdateEoiAssets(); foreach (var eoiAsset in asset.GetEoiAssets()) { } } } }
internal static RawEsiVerify Verify(string access_token) { return(EveSwaggerInterface.Verify(access_token)); }
internal static bool Working() { return(EveSwaggerInterface.Working()); }
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)); } } } } } }
internal static void Start(Thread mainThread) { if (mainThread == null) { return; } MainThread = mainThread; while (!_stop) { CheckUserAccessTokens(); if (SettingsInterface.GlobalSettings.EnableAutoUpdater) { var updated = false; if (SynchronizeBlueprints()) { updated = true; } CheckUpdated(updated, EoiInterface.BlueprintPropertyChanged); updated = false; Status = new BackgroundWorkerStatus("Synchronisiere Assets", -1); SynchronizeAssets(); SynchronizeWallet(); CheckUpdated(true, EoiInterface.AssetPropertyChanged); Status = new BackgroundWorkerStatus("Synchronisiere Markt Orders", -1); SynchronizeCharacterOrders(); CheckUpdated(true, EoiInterface.BlueprintPropertyChanged); if (SettingsInterface.GlobalSettings.EnableCorporationContractsUpdates && !_stop) { Status = new BackgroundWorkerStatus("Synchronisiere Corporation Verträge", -1); if (SynchronizeCorporationContracts()) { updated = true; } CheckUpdated(updated, EoiInterface.ContractsPropertyChanged); updated = false; } if (SettingsInterface.GlobalSettings.EnableMarketerUpdates && !_stop) { Status = new BackgroundWorkerStatus("Aktualisiert Markt Preise", -1); if (CheckMarketerData()) { updated = true; } CheckUpdated(true, EoiInterface.AssetPropertyChanged); CheckUpdated(updated, EoiInterface.BlueprintPropertyChanged); updated = false; } if (SettingsInterface.GlobalSettings.EnableMarketHistoryUpdates && !_stop) { Status = new BackgroundWorkerStatus("Aktualisiert Markt Verkaufszahlen", -1); if (CheckMarketHistory()) { updated = true; } CheckUpdated(updated, EoiInterface.BlueprintPropertyChanged); updated = false; } } var preStop = false; for (int i = 0; i < 30; i++) { if (!_stop) { CheckUserAccessTokens(); if (_calculateBlueprints) { Status = new BackgroundWorkerStatus("Berechne Blueprints", -1); _calculateBlueprints = false; EoiDataInterface.CalculateAllBlueprints(); CheckUpdated(true, EoiInterface.BlueprintPropertyChanged); } if (EveSwaggerInterface.Working()) { var state = EveSwaggerInterface.GetProgressState(); Status = new BackgroundWorkerStatus("Download vom Eve Online Server: " + state.FinishedOperations + " / " + state.Operations, state.Progress); preStop = true; } else { Status = new BackgroundWorkerStatus("", 0); } Thread.Sleep(SettingsInterface.GlobalSettings.AutoUpdaterInterval / 30); if (preStop && !EveSwaggerInterface.Working()) { i = 30; } } } } }