public IAbpStore BuildStore(string storeName, IAbpStoreOptions storeOptions) { return(BuildStoreInternal( storeName, storeOptions.ParseStoreOptions <TParsedOptions, TInstanceOptions, TStoreOptions, TScopedStoreOptions>( Options))); }
public static TStoreOptions ParseStoreOptions <TParsedOptions, TInstanceOptions, TStoreOptions, TScopedStoreOptions>(this IAbpStoreOptions storeOptions, TParsedOptions options) where TParsedOptions : class, IAbpParsedOptions <TInstanceOptions, TStoreOptions, TScopedStoreOptions>, new() where TInstanceOptions : class, IProviderInstanceOptions, new() where TStoreOptions : class, IAbpStoreOptions, new() where TScopedStoreOptions : class, TStoreOptions, IScopedStoreOptions { if (!(storeOptions is TStoreOptions parsedStoreOptions)) { parsedStoreOptions = new TStoreOptions { Name = storeOptions.Name, ProviderName = storeOptions.ProviderName, ProviderType = storeOptions.ProviderType, AccessLevel = storeOptions.AccessLevel, FolderName = storeOptions.FolderName, }; } parsedStoreOptions.Compute <TParsedOptions, TInstanceOptions, TStoreOptions, TScopedStoreOptions>(options); return(parsedStoreOptions); }
private IAbpStorageProvider GetProvider(IAbpStoreOptions configuration, bool throwIfNotFound = true) { string providerTypeName = null; if (!string.IsNullOrEmpty(configuration.ProviderType)) { providerTypeName = configuration.ProviderType; } else if (!string.IsNullOrEmpty(configuration.ProviderName)) { _options.ParsedProviderInstances.TryGetValue(configuration.ProviderName, out var providerInstanceOptions); if (providerInstanceOptions != null) { providerTypeName = providerInstanceOptions.Type; } else if (throwIfNotFound) { throw new BadProviderConfigurationException(configuration.ProviderName, "Unable to find it in the configuration."); } } else if (throwIfNotFound) { throw new BadStoreConfigurationException(configuration.Name, "You have to set either 'ProviderType' or 'ProviderName' on Store configuration."); } if (string.IsNullOrEmpty(providerTypeName)) { return(null); } _storageProviders.TryGetValue(providerTypeName, out var provider); if (provider == null && throwIfNotFound) { throw new ProviderNotFoundException(providerTypeName); } return(provider); }
public IAbpStore GetStore(string storeName, IAbpStoreOptions configuration) { return(GetProvider(configuration).BuildStore(storeName, configuration)); }