using System; using System.Collections.Generic; using System.Linq; using Umbraco.Core.ObjectResolution; namespace Umbraco.Core.Persistence.SqlSyntax { /// /// A resolver to return all ISqlSyntaxProvider objects /// internal sealed class SqlSyntaxProvidersResolver : ManyObjectsResolverBase { /// /// Constructor /// /// internal SqlSyntaxProvidersResolver(IEnumerable syntaxProviders) : base(syntaxProviders) { } /// /// Gets the implementations. /// public IEnumerable SqlSyntaxProviders { get { return Values; } } /// /// Gets a by its attributed provider. /// /// ProviderName from the ConnectionString settings /// that corresponds to the attributed provider or the default Sql Server Syntax Provider. public ISqlSyntaxProvider GetByProviderNameOrDefault(string providerName) { var provider = Values.FirstOrDefault( x => x.GetType() .FirstAttribute() .ProviderName.ToLowerInvariant() .Equals(providerName.ToLowerInvariant())); if (provider != null) return provider; return Values.First(x => x.GetType() == typeof (SqlServerSyntaxProvider)); } } }