コード例 #1
0
        /// <summary>
        /// Configures services for a given service collection and configuration.
        /// </summary>
        /// <param name="services">Services.</param>
        /// <param name="configuration">Configuration.</param>
        /// <returns><see cref="IServiceCollection"/>.</returns>
        public static IServiceCollection AddAsaphServices(
            this IServiceCollection services, IConfiguration configuration)
        {
            // Get Azure AD B2C configuration
            AzureAdb2cConfiguration azureAdb2CConfiguration = configuration
                                                              .GetSection("AzureAdb2c")
                                                              .Get <AzureAdb2cConfiguration>();

            // Get Dynamo DB configuration
            DynamoDBConfiguration dynamoDBConfiguration = configuration
                                                          .GetSection("DynamoDB")
                                                          .Get <DynamoDBConfiguration>();

            // Register services
            services.AddTransient <
                ISongDirectorRepositoryFragment,
                AzureAdb2cSongDirectorRepository>(
                factory => new(azureAdb2CConfiguration))
            .AddTransient <
                ISongDirectorRepositoryFragment,
                DynamoDBSongDirectorRepository>(
                factory => new(dynamoDBConfiguration))
            .AddTransient <
                IAsyncRepository <SongDirector>,
                AggregateSongDirectorRepository>();

            // Return the service collection reference
            return(services);
        }
コード例 #2
0
    /// <summary>
    /// Initializes a new instance of the <see cref="AzureAdb2cSongDirectorRepository"/> class.
    /// </summary>
    /// <param name="configuration">Configuration.</param>
    public AzureAdb2cSongDirectorRepository(AzureAdb2cConfiguration configuration)
    {
        _domain = configuration.Domain !;

        _rolesPropertyName = $"extension_{configuration.ExtensionsAppClientId}_Roles";

        _userSelectString = $"displayName,id,mail,mobilePhone,{_rolesPropertyName}";

        ClientSecretCredential clientSecretCredential = new(
            configuration.TenantId, configuration.ClientId, configuration.ClientSecret);

        _graphServiceClient = new GraphServiceClient(clientSecretCredential);
    }