public static SafeXmlReaderWriter Get(IScopeProviderInternal scopeProvider, AsyncLock xmlLock, XmlDocument xml, Action <XmlDocument> refresh, Action <XmlDocument, bool> apply, bool writer) { var scopeContext = scopeProvider.Context; // no real scope = just create a reader/writer instance if (scopeContext == null) { // obtain exclusive access to xml and create reader/writer var releaser = xmlLock.Lock(); return(new SafeXmlReaderWriter(releaser, xml, refresh, apply, writer, false)); } // get or create an enlisted reader/writer var rw = scopeContext.Enlist("safeXmlReaderWriter", () => // creator { // obtain exclusive access to xml and create reader/writer var releaser = xmlLock.Lock(); return(new SafeXmlReaderWriter(releaser, xml, refresh, apply, writer, true)); }, (completed, item) => // action { item.DisposeForReal(completed); }); // ensure it's not already in-use - should never happen, just being super safe if (rw._using) { throw new InvalidOperationException(); } rw._using = true; return(rw); }
/// <summary> /// Create a configured DatabaseContext /// </summary> /// <param name="scopeProvider"></param> /// <param name="logger"></param> /// <param name="sqlSyntax"></param> /// <param name="providerName"></param> internal DatabaseContext(IScopeProviderInternal scopeProvider, ILogger logger, ISqlSyntaxProvider sqlSyntax, string providerName) { _providerName = providerName; SqlSyntax = sqlSyntax; SqlSyntaxContext.SqlSyntaxProvider = SqlSyntax; ScopeProvider = scopeProvider; _logger = logger; _configured = true; }
internal DatabaseContext(IScopeProviderInternal scopeProvider) : this(scopeProvider, LoggerResolver.Current.Logger, new SqlSyntaxProviders(new ISqlSyntaxProvider[] { new MySqlSyntaxProvider(LoggerResolver.Current.Logger), new SqlCeSyntaxProvider(), new SqlServerSyntaxProvider() })) { }
/// <summary> /// Create a configured DatabaseContext /// </summary> /// <param name="factory"></param> /// <param name="logger"></param> /// <param name="sqlSyntax"></param> /// <param name="providerName"></param> public DatabaseContext(IDatabaseFactory factory, ILogger logger, ISqlSyntaxProvider sqlSyntax, string providerName) { _providerName = providerName; SqlSyntax = sqlSyntax; SqlSyntaxContext.SqlSyntaxProvider = SqlSyntax; var asDbFactory2 = factory as IDatabaseFactory2; ScopeProvider = asDbFactory2 == null ? new ScopeProvider(new DatabaseFactoryWrapper(factory)) : new ScopeProvider(asDbFactory2); _logger = logger; _configured = true; }
public ScopeLifespanMessagesFactory(IHttpContextAccessor contextAccesor, IScopeProvider scopeProvider) { if (contextAccesor == null) { throw new ArgumentNullException("contextAccesor"); } if (scopeProvider == null) { throw new ArgumentNullException("scopeProvider"); } if (scopeProvider is IScopeProviderInternal == false) { throw new ArgumentException("Not IScopeProviderInternal.", "scopeProvider"); } _contextAccessor = contextAccesor; _scopeProvider = (IScopeProviderInternal)scopeProvider; Current = this; }
/// <summary> /// Default constructor /// </summary> /// <param name="scopeProvider"></param> /// <param name="logger"></param> /// <param name="syntaxProviders"></param> internal DatabaseContext(IScopeProviderInternal scopeProvider, ILogger logger, SqlSyntaxProviders syntaxProviders) { if (scopeProvider == null) { throw new ArgumentNullException("scopeProvider"); } if (logger == null) { throw new ArgumentNullException("logger"); } if (syntaxProviders == null) { throw new ArgumentNullException("syntaxProviders"); } ScopeProvider = scopeProvider; _logger = logger; _syntaxProviders = syntaxProviders; }
/// <summary> /// Default constructor /// </summary> /// <param name="factory"></param> /// <param name="logger"></param> /// <param name="syntaxProviders"></param> public DatabaseContext(IDatabaseFactory factory, ILogger logger, SqlSyntaxProviders syntaxProviders) { if (factory == null) { throw new ArgumentNullException("factory"); } if (logger == null) { throw new ArgumentNullException("logger"); } if (syntaxProviders == null) { throw new ArgumentNullException("syntaxProviders"); } var asDbFactory2 = factory as IDatabaseFactory2; ScopeProvider = asDbFactory2 == null ? new ScopeProvider(new DatabaseFactoryWrapper(factory)) : new ScopeProvider(asDbFactory2); _logger = logger; _syntaxProviders = syntaxProviders; }
public ScopeReference(IScopeProviderInternal scopeProvider) { _scopeProvider = scopeProvider; }
public static SafeXmlReaderWriter Get(IScopeProviderInternal scopeProvider) { var scopeContext = scopeProvider.Context; return(scopeContext == null ? null : scopeContext.GetEnlisted <SafeXmlReaderWriter>("safeXmlReaderWriter")); }
public ShadowWrapper(IFileSystem innerFileSystem, string shadowPath, IScopeProviderInternal scopeProvider) { _innerFileSystem = innerFileSystem; _shadowPath = shadowPath; _scopeProvider = scopeProvider; }