public async ValueTask <BungieResponse <T> > GetDestinyEntityDefinition <T>(DefinitionsEnum entityType, uint hash, CancellationToken token = default) where T : IDestinyDefinition { var url = StringBuilderPool .GetBuilder(token) .Append("/Destiny2/Manifest/") .AddUrlParam(entityType.ToString()) .AddUrlParam(hash.ToString()) .Build(); return(await _httpClient.GetFromBungieNetPlatform <T>(url, token)); }
public async ValueTask <BungieResponse <DestinyEntitySearchResult> > SearchDestinyEntities( DefinitionsEnum type, string searchTerm, int page = 0, CancellationToken token = default) { var url = StringBuilderPool .GetBuilder(token) .Append("/Destiny2/Armory/Search/") .AddUrlParam(type.ToString()) .AddUrlParam(searchTerm) .AddQueryParam("page", page.ToString()) .Build(); return(await _httpClient.GetFromBungieNetPlatform <DestinyEntitySearchResult>(url, token)); }
public string FetchJSONFromDB(DestinyLocales locale, DefinitionsEnum definitionType, uint hash) { if (!_assemblyData.DefinitionsToTypeMapping[definitionType].AttributeData.Sources.HasFlag(Attributes.DefinitionSources.SQLite)) { throw new Exception("This definition type isn't present in SQLite database."); } var manifest = StaticUnityContainer.GetManifestUpdateHandler().CurrentManifest; var mobileWorldContentPathsLocalePath = Path.GetFileName(manifest.MobileWorldContentPaths[locale.LocaleToString()]); var connectionString = @$ "Data Source={_configs.Settings.VersionsRepositoryPath}\\{manifest.Version}\\MobileWorldContent\\{locale.LocaleToString()}\\{mobileWorldContentPathsLocalePath}; Version=3;"; string result = string.Empty; using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); string query = $"SELECT * FROM {definitionType.ToString()} WHERE id={hash.ToInt32()}"; SQLiteCommand command = new SQLiteCommand { Connection = connection, CommandText = query }; try { var reader = command.ExecuteReader(); while (reader.Read()) { var byteArray = (byte[])reader["json"]; result = Encoding.UTF8.GetString(byteArray, 0, byteArray.Length); } } catch (Exception e) { _logger.Log(e.Message, LogType.Error); } connection.Close(); } return(result); }