FRCloudProviderManager.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using FastReport.Cloud.FastReport.Models;
  2. using static FastReport.Cloud.FastReport.ListViewCloud.Modes;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. namespace FastReport.Cloud.FastReport
  6. {
  7. internal static class ProviderManager
  8. {
  9. public static IFRCloudProvider Provider { get; set; }
  10. public static IFRCloudDataSourcesProvider DataSourcesProvider { get; set; }
  11. public static ICollection<SubscriptionVM> Subscriptions { get; set; }
  12. public static SubscriptionVM Subscription { get; set; }
  13. public static IFRCloudFilesProvider FilesProvider { get; set; }
  14. public static IFRCloudUserSettingsProvider UserSettingsProvider { get; set; }
  15. public static void SetProvider(IFRCloudProvider provider, CloudFilesMode filesMode)
  16. {
  17. //bool isAlreadySet = Subscriptions != null;
  18. Provider = provider;
  19. DataSourcesProvider = provider.DataSources;
  20. Subscriptions = provider.Subscriptions.GetSubscriptions();
  21. UserSettingsProvider = provider.UserSettings;
  22. Subscription = GetDefaultSubscription();
  23. FilesProvider = filesMode == CloudFilesMode.Reports
  24. ? Provider.Reports
  25. : Provider.Templates;
  26. }
  27. private static SubscriptionVM GetDefaultSubscription()
  28. {
  29. var defaultSubscription = UserSettingsProvider.GetUserSettings().DefaultSubscription;
  30. foreach (var subscriptionVm in Subscriptions)
  31. {
  32. if (subscriptionVm.Id == defaultSubscription)
  33. return subscriptionVm;
  34. }
  35. return Subscriptions.First();
  36. }
  37. }
  38. }