using FastReport.Cloud.FastReport.Models; using static FastReport.Cloud.FastReport.ListViewCloud.Modes; using System.Collections.Generic; using System.Linq; namespace FastReport.Cloud.FastReport { internal static class ProviderManager { public static IFRCloudProvider Provider { get; set; } public static IFRCloudDataSourcesProvider DataSourcesProvider { get; set; } public static ICollection Subscriptions { get; set; } public static SubscriptionVM Subscription { get; set; } public static IFRCloudFilesProvider FilesProvider { get; set; } public static IFRCloudUserSettingsProvider UserSettingsProvider { get; set; } public static void SetProvider(IFRCloudProvider provider, CloudFilesMode filesMode) { //bool isAlreadySet = Subscriptions != null; Provider = provider; DataSourcesProvider = provider.DataSources; Subscriptions = provider.Subscriptions.GetSubscriptions(); UserSettingsProvider = provider.UserSettings; Subscription = GetDefaultSubscription(); FilesProvider = filesMode == CloudFilesMode.Reports ? Provider.Reports : Provider.Templates; } private static SubscriptionVM GetDefaultSubscription() { var defaultSubscription = UserSettingsProvider.GetUserSettings().DefaultSubscription; foreach (var subscriptionVm in Subscriptions) { if (subscriptionVm.Id == defaultSubscription) return subscriptionVm; } return Subscriptions.First(); } } }