AzureStorageServiceCollectionExtensions.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using HaBookCms.AzureStorage.AzureBlob.Implements;
  2. using HaBookCms.AzureStorage.AzureBlob.Interfaces;
  3. using HaBookCms.AzureStorage.AzureTable.Implements;
  4. using HaBookCms.AzureStorage.AzureTable.Interfaces;
  5. using Microsoft.Extensions.DependencyInjection;
  6. using System;
  7. namespace HaBookCms.AzureStorage.ServiceExtension
  8. {
  9. public static class AzureStorageServiceCollectionExtensions
  10. {
  11. public static AzureStorageServiceBuilder builder { get; set; }
  12. /// <summary>
  13. ///
  14. /// </summary>
  15. /// <param name="services"></param>
  16. /// <returns></returns>
  17. private static AzureStorageServiceBuilder AddServerBuilder(this IServiceCollection services)
  18. {
  19. return new AzureStorageServiceBuilder(services);
  20. }
  21. /// <summary>
  22. ///
  23. /// </summary>
  24. /// <param name="services"></param>
  25. /// <returns></returns>
  26. public static AzureStorageServiceBuilder AddAzureTableStorage(this IServiceCollection services)
  27. {
  28. if (builder == null) {
  29. builder = services.AddServerBuilder();
  30. }
  31. services.AddSingleton<IAzureTableDBRepository, AzureTableDBRepository>();
  32. return builder;
  33. }
  34. /// <summary>
  35. ///
  36. /// </summary>
  37. /// <param name="builder"></param>
  38. /// <param name="_connectionString"></param>
  39. /// <returns></returns>
  40. public static AzureStorageServiceBuilder AddConnection(this AzureStorageServiceBuilder builder, AzureStorageOptions databaseOptions)
  41. {
  42. // AzureStorageOptions databaseOptions = new AzureStorageOptions();
  43. // databaseOptions.ConnectionString = _connectionString;
  44. builder.Services.AddSingleton(databaseOptions);
  45. return builder;
  46. }
  47. /// <summary>
  48. ///
  49. /// </summary>
  50. /// <param name="services"></param>
  51. /// <returns></returns>
  52. public static AzureStorageServiceBuilder AddAzureBlobStorage(this IServiceCollection services)
  53. {
  54. if (builder == null)
  55. {
  56. builder = services.AddServerBuilder();
  57. }
  58. services.AddSingleton<IAzureBlobDBRepository, AzureBlobDBRepository>();
  59. return builder;
  60. }
  61. }
  62. }