Exemple #1
0
 public SocialMethodsAccess(
     IDotNetBungieApiHttpClient dotNetBungieApiHttpClient,
     BungieClientConfiguration configuration)
 {
     _dotNetBungieApiHttpClient = dotNetBungieApiHttpClient;
     _configuration             = configuration;
 }
Exemple #2
0
 public Destiny2MethodsAccess(
     IDotNetBungieApiHttpClient dotNetBungieApiHttpClient,
     IBungieNetJsonSerializer serializer,
     BungieClientConfiguration configurationService)
 {
     _dotNetBungieApiHttpClient = dotNetBungieApiHttpClient;
     _serializer    = serializer;
     _configuration = configurationService;
 }
 public UserMethodsAccess(
     IDotNetBungieApiHttpClient dotNetBungieApiHttpClient,
     BungieClientConfiguration configuration,
     IBungieNetJsonSerializer bungieNetJsonSerializer)
 {
     _dotNetBungieApiHttpClient = dotNetBungieApiHttpClient;
     _configuration             = configuration;
     _bungieNetJsonSerializer   = bungieNetJsonSerializer;
 }
Exemple #4
0
 public GroupV2MethodsAccess(
     IDotNetBungieApiHttpClient dotNetBungieApiHttpClient,
     BungieClientConfiguration configuration,
     IBungieNetJsonSerializer serializer)
 {
     _dotNetBungieApiHttpClient = dotNetBungieApiHttpClient;
     _configuration             = configuration;
     _serializer = serializer;
 }
Exemple #5
0
 public DefaultAuthorizationHandler(
     ILogger logger,
     IDotNetBungieApiHttpClient dotNetBungieApiHttpClient,
     BungieClientConfiguration configuration)
 {
     _logger                  = logger;
     _client                  = dotNetBungieApiHttpClient;
     _configuration           = configuration;
     _authorizationStates     = new ConcurrentDictionary <string, AuthorizationState>();
     _authorizationTokenDatas = new ConcurrentDictionary <long, AuthorizationTokenData>();
 }
    private static void RegisterServices(
        IServiceCollection serviceCollection,
        BungieClientConfiguration configuration)
    {
        if (!configuration.LoggerConfigured)
        {
            configuration.UseDefaultLogger();
        }
        if (!configuration.RepositoryConfigured)
        {
            configuration.UseDefaultDefinitionRepository();
        }
        if (!configuration.SerializerConfigured)
        {
            configuration.UseDefaultBungieNetJsonSerializer();
        }
        if (!configuration.AuthHandlerConfigured)
        {
            configuration.UseDefaultAuthorizationHandler();
        }
        if (!configuration.DefinitionProviderConfigured)
        {
            configuration.UseDefaultDefinitionProvider();
        }
        if (!configuration.HttpClientConfigured)
        {
            configuration.UseDefaultHttpClient();
        }
        if (!configuration.ResetServiceConfigured)
        {
            configuration.UseDefaultDestiny2ResetService();
        }

        serviceCollection.AddSingleton(configuration);
        serviceCollection.AddSingleton <IBungieClient, BungieClient>();
        serviceCollection.AddSingleton <IDefinitionAssemblyData, DefinitionAssemblyData>();

        serviceCollection.AddSingleton <IBungieApiAccess, BungieApiAccess>();

        serviceCollection.AddSingleton <IFireteamMethodsAccess, FireteamMethodsAccess>();
        serviceCollection.AddSingleton <IContentMethodsAccess, ContentMethodsAccess>();
        serviceCollection.AddSingleton <IAppMethodsAccess, AppMethodsAccess>();
        serviceCollection.AddSingleton <IForumMethodsAccess, ForumMethodsAccess>();
        serviceCollection.AddSingleton <IGroupV2MethodsAccess, GroupV2MethodsAccess>();
        serviceCollection.AddSingleton <IUserMethodsAccess, UserMethodsAccess>();
        serviceCollection.AddSingleton <ITokenMethodsAccess, TokenMethodsAccess>();
        serviceCollection.AddSingleton <IDestiny2MethodsAccess, Destiny2MethodsAccess>();
        serviceCollection.AddSingleton <ICommunityContentMethodsAccess, CommunityContentMethodsAccess>();
        serviceCollection.AddSingleton <ISocialMethodsAccess, SocialMethodsAccess>();
        serviceCollection.AddSingleton <ITrendingMethodsAccess, TrendingMethodsAccess>();
        serviceCollection.AddSingleton <IMiscMethodsAccess, MiscMethodsAccess>();
        serviceCollection.AddSingleton <IRenderApiAccess, RenderApiAccess>();
    }
    /// <summary>
    ///     Registers <see cref="IBungieClient" /> to specified <see cref="IServiceCollection" />
    /// </summary>
    /// <param name="serviceCollection"></param>
    /// <param name="configure"></param>
    /// <returns></returns>
    public static IServiceCollection UseBungieApiClient(
        this IServiceCollection serviceCollection,
        Action <BungieClientConfiguration> configure)
    {
        var configuration = new BungieClientConfiguration(serviceCollection);

        configure.Invoke(configuration);

        RegisterServices(serviceCollection, configuration);

        return(serviceCollection);
    }
    public static IBungieClient GetApiClient(
        Action <BungieClientConfiguration> configure,
        IServiceCollection serviceCollection = null)
    {
        serviceCollection ??= new ServiceCollection();

        var configuration = new BungieClientConfiguration(serviceCollection);

        configure.Invoke(configuration);

        RegisterServices(serviceCollection, configuration);

        return(serviceCollection.BuildServiceProvider().GetService <IBungieClient>());
    }
 public BungieClient(
     ILogger logger,
     IBungieApiAccess apiAccess,
     IAuthorizationHandler authorizationHandler,
     IDestiny2DefinitionRepository repository,
     IDefinitionProvider definitionProvider,
     IDestiny2ResetService destiny2ResetService,
     BungieClientConfiguration configuration,
     IServiceProvider serviceProvider)
 {
     _logger            = logger;
     ResetService       = destiny2ResetService;
     _configuration     = configuration;
     Authentication     = authorizationHandler;
     Repository         = repository;
     ApiAccess          = apiAccess;
     DefinitionProvider = definitionProvider;
     ServiceProviderInstance.Instance = serviceProvider;
 }