AzureBlobServiceCollectionExtensions.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using TEAMModelOS.SDK.Module.AzureBlob.Implements;
  2. using TEAMModelOS.SDK.Module.AzureBlob.Interfaces;
  3. using Microsoft.Extensions.DependencyInjection;
  4. namespace TEAMModelOS.SDK.Module.AzureBlob.Configuration
  5. {
  6. public static class AzureBlobServiceCollectionExtensions
  7. {
  8. public static AzureBlobServiceBuilder Builder { get; set; }
  9. /// <summary>
  10. ///
  11. /// </summary>
  12. /// <param name="services"></param>
  13. /// <returns></returns>
  14. private static AzureBlobServiceBuilder AddServerBuilder(this IServiceCollection services)
  15. {
  16. return new AzureBlobServiceBuilder(services);
  17. }
  18. /// <summary>
  19. ///
  20. /// </summary>
  21. /// <param name="services"></param>
  22. /// <returns></returns>
  23. public static AzureBlobServiceBuilder AddAzureBlobStorage(this IServiceCollection services)
  24. {
  25. if (Builder == null)
  26. {
  27. Builder = services.AddServerBuilder();
  28. }
  29. services.AddSingleton<IAzureBlobDBRepository, AzureBlobDBRepository>();
  30. return Builder;
  31. }
  32. /// <summary>
  33. ///
  34. /// </summary>
  35. /// <param name="builder"></param>
  36. /// <param name="_connectionString"></param>
  37. /// <returns></returns>
  38. public static AzureBlobServiceBuilder AddConnection(this AzureBlobServiceBuilder builder, AzureBlobOptions databaseOptions)
  39. {
  40. builder.Services.AddSingleton(databaseOptions);
  41. return builder;
  42. }
  43. }
  44. }