//private readonly IRepositoryBulkReader BulkReader; //private readonly Lazy<World>[] LazyWorlds = new Lazy<World>[512]; public Context(IObjectFactory factory, IDatabaseQueryManager manager) { var scope = factory.CreateScope(null); scope.RegisterInterfaces(manager.StartQuery(false)); WorldRepository = scope.Resolve<IPersistableRepository<World>>(); FortuneRepository = scope.Resolve<IQueryableRepository<Fortune>>(); //BulkReader = scope.BulkRead(ChunkedMemoryStream.Static()); }
public ScopePool( IObjectFactory factory, IDatabaseQueryManager queries, IExtensibilityProvider extensibilityProvider) { this.Factory = factory; this.Queries = queries; if (!int.TryParse(ConfigurationManager.AppSettings["Processing.PoolSize"], out Size)) Size = 20; if (!Enum.TryParse<PoolMode>(ConfigurationManager.AppSettings["Processing.PoolMode"], out Mode)) { //TODO: Mono has issues with BlockingCollection. use None as default int p = (int)Environment.OSVersion.Platform; if (p == 4 || p == 6 || p == 128) Mode = PoolMode.None; else Mode = PoolMode.IfAvailable; } var commandTypes = extensibilityProvider.FindPlugins<IServerCommand>(); Factory.RegisterTypes(commandTypes, InstanceScope.Context); if (Mode != PoolMode.None) { if (Size < 1) Size = 1; for (int i = 0; i < Size; i++) Scopes.Add(SetupReadonlyScope()); } }
public EmployeeController([FromServices] ProTickDatabaseContext db, [FromServices] IResourceDTOConverter converter, [FromServices] IDatabaseQueryManager dbm, [FromServices] IHasher hasher) { this.db = db; this.converter = converter; this.dbm = dbm; this.hasher = hasher; }
public UnitOfWork(IObjectFactory factory) { Scope = factory.CreateInnerFactory(); Manager = factory.Resolve <IDatabaseQueryManager>(); DatabaseQuery = Manager.BeginTransaction(); Scope.RegisterInstance(DatabaseQuery); Context = Scope.Resolve <IDataContext>(); }
public AddressController([FromServices] ProTickDatabaseContext db, [FromServices] IResourceDTOConverter converter, [FromServices] IDatabaseQueryManager dbm) { this.db = db; this.converter = converter; this.dbm = dbm; }
//private readonly IRepositoryBulkReader BulkReader; //private readonly Lazy<World>[] LazyWorlds = new Lazy<World>[512]; public Context(IObjectFactory factory, IDatabaseQueryManager manager) { var scope = factory.CreateScope(null); scope.RegisterInterfaces(manager.StartQuery(false)); WorldRepository = scope.Resolve <IPersistableRepository <World> >(); FortuneRepository = scope.Resolve <IQueryableRepository <Fortune> >(); //BulkReader = scope.BulkRead(ChunkedMemoryStream.Static()); }
/// <summary> /// Rollback started transaction. /// </summary> /// <param name="manager">query manager</param> /// <param name="query">ADO.NET driver</param> public static void Rollback(this IDatabaseQueryManager manager, IDatabaseQuery query) { Contract.Requires(manager != null); Contract.Requires(query != null); if (!query.InTransaction) { throw new ArgumentException("Only queries in transaction can be rollbacked"); } manager.EndQuery(query, false); }
public AuthenticationController(IConfiguration conf, [FromServices] ProTickDatabaseContext db, [FromServices] IResourceDTOConverter converter, [FromServices] IDatabaseQueryManager dbm, [FromServices] IHasher hasher) { this.configuration = conf; this.db = db; this.converter = converter; this.dbm = dbm; this.hasher = hasher; }
public ProcessingEngine( IObjectFactory objectFactory, IDatabaseQueryManager transactionManager, IPermissionManager permissions, ILogFactory logFactory, IExtensibilityProvider extensibilityProvider) { Contract.Requires(objectFactory != null); Contract.Requires(transactionManager != null); Contract.Requires(permissions != null); Contract.Requires(logFactory != null); Contract.Requires(extensibilityProvider != null); this.ObjectFactory = objectFactory.CreateInnerFactory(); this.TransactionManager = transactionManager; this.Permissions = permissions; this.Logger = logFactory.Create("Processing engine"); var commandTypes = extensibilityProvider.FindPlugins <IServerCommand>(); ObjectFactory.RegisterTypes(commandTypes, InstanceScope.Transient); foreach (var ct in commandTypes) { ActualCommands[ct] = ct; } foreach (var ct in commandTypes) { var attr = ct.GetCustomAttributes(typeof(ExportMetadataAttribute), false) as ExportMetadataAttribute[]; if (attr != null) { var insteadOf = attr.FirstOrDefault(it => it.Name == Metadata.InsteadOf); if (insteadOf != null) { var type = insteadOf.Value as Type; if (commandTypes.All(it => it != type)) { throw new FrameworkException("Can't find target {0} for InsteadOf attribute declared on {1}".With(type, ct)); } ActualCommands[type] = ct; } } } }
public ScopePool( IObjectFactory factory, IDatabaseQueryManager queries, IExtensibilityProvider extensibilityProvider, ILogFactory logFactory) { this.Factory = factory; this.Queries = queries; if (!int.TryParse(ConfigurationManager.AppSettings["Processing.PoolSize"], out Size)) Size = 20; if (!Enum.TryParse<PoolMode>(ConfigurationManager.AppSettings["Processing.PoolMode"], out Mode)) Mode = PoolMode.IfAvailable; var commandTypes = extensibilityProvider.FindPlugins<IServerCommand>(); Factory.RegisterTypes(commandTypes, InstanceScope.Context); if (Mode != PoolMode.None) { if (Size < 1) Size = 1; for (int i = 0; i < Size; i++) Scopes.Add(SetupReadonlyScope()); } Logger = logFactory.Create("Scope pool"); }
public ScopePool( IObjectFactory factory, IDatabaseQueryManager queries, IExtensibilityProvider extensibilityProvider) { this.Factory = factory; this.Queries = queries; if (!int.TryParse(ConfigurationManager.AppSettings["Processing.PoolSize"], out Size)) { Size = 20; } if (!Enum.TryParse <PoolMode>(ConfigurationManager.AppSettings["Processing.PoolMode"], out Mode)) { //TODO: Mono has issues with BlockingCollection. use None as default int p = (int)Environment.OSVersion.Platform; if (p == 4 || p == 6 || p == 128) { Mode = PoolMode.None; } else { Mode = PoolMode.IfAvailable; } } var commandTypes = extensibilityProvider.FindPlugins <IServerCommand>(); Factory.RegisterTypes(commandTypes, InstanceScope.Context); if (Mode != PoolMode.None) { if (Size < 1) { Size = 1; } for (int i = 0; i < Size; i++) { Scopes.Add(SetupReadonlyScope()); } } }
/// <summary> /// Start database query without a transaction. /// </summary> /// <param name="manager">query manager</param> /// <returns>ADO.NET driver</returns> public static IDatabaseQuery CreateQuery(this IDatabaseQueryManager manager) { Contract.Requires(manager != null); return(manager.StartQuery(false)); }
/// <summary> /// Start database query with a transaction. /// </summary> /// <param name="manager">query manager</param> /// <returns>ADO.NET driver</returns> public static IDatabaseQuery BeginTransaction(this IDatabaseQueryManager manager) { Contract.Requires(manager != null); return(manager.StartQuery(true)); }
public RestService(IObjectFactory factory, IDatabaseQueryManager queryManager) { this.Context = new ThreadLocal <Context>(() => new Context(factory, queryManager)); }
public RestService(IObjectFactory factory, IDatabaseQueryManager queryManager) { this.Context = new ThreadLocal<Context>(() => new Context(factory, queryManager)); }
public ResourceDTOConverter([FromServices] IDatabaseQueryManager dbm) { this.dbm = dbm; }