} //TODO: Need to work this out because in future there can be more than one provider active at a time. //TODO: In future the registered providers will be dynamically loaded from MEF by watching a hot folder for compiled provider dlls (and other ways in future...) public static void RegisterProvider(IOASISProvider provider) { if (!_registeredProviders.Any(x => x.ProviderName == provider.ProviderName)) { _registeredProviders.Add(provider); } }
public static void DeaAtivateProvider(ProviderType type) { IOASISProvider provider = _registeredProviders.FirstOrDefault(x => x.ProviderType == type); if (provider != null) { provider.DeActivateProvider(); } }
//TODO: In future more than one StorageProvider will be active at a time so we need to work out how to handle this... public static void SwitchCurrentStorageProvider(ProviderType providerType) { IOASISProvider provider = _registeredProviders.FirstOrDefault(x => x.ProviderType == providerType); if (provider != null && (provider.ProviderCategory == ProviderCategory.Storage || provider.ProviderCategory == ProviderCategory.StorageAndNetwork)) { ProviderManager.CurrentStorageProviderType = providerType; ProviderManager.CurrentStorageProvider = (IOASISStorage)provider; ProviderManager.CurrentStorageProvider.ActivateProvider(); } }
// Highly recommend this one is used. public static IOASISProvider GetAndActivateProvider(ProviderType type) { IOASISProvider provider = _registeredProviders.FirstOrDefault(x => x.ProviderType == type); if (provider != null) { provider.ActivateProvider(); } return(provider); }
public static void UnRegisterProvider(IOASISProvider provider) { _registeredProviders.Remove(provider); }
public static bool IsProviderRegistered(IOASISProvider provider) { return(_registeredProviders.Any(x => x.ProviderName == provider.ProviderName)); }