LiteDBServiceCollectionExtensions.cs 1.5 KB

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