/// <summary> /// Activate the database instance /// </summary> public void Activate() { if (DesignerProperties.IsInDesignTool) { return; } if (Debugger.IsAttached) { this.sterlingDefaultLogger = new SterlingDefaultLogger(SterlingLogLevel.Verbose); } this.sterlingEngine = new SterlingEngine(); // custom serializer for types this.sterlingEngine.SterlingDatabase.RegisterSerializer<TypeSerializer>(); // change this for more verbose messages this.sterlingDefaultLogger = new SterlingDefaultLogger(SterlingLogLevel.Information); this.sterlingEngine.Activate(); this.Database = this.sterlingEngine.SterlingDatabase.RegisterDatabase<VBForumsMetroDatabase>(new IsolatedStorageDriver()); // see if we need to load it VBForumsMetroDatabase.CheckAndCreate(this.Database); }
static void Main(string[] args) { var engine = new SterlingEngine(); var logger = new SterlingDefaultLogger(SterlingLogLevel.Information); engine.Activate(); var db = engine.SterlingDatabase.RegisterDatabase <CoolDatabase>(new MemoryDriver()); db.RegisterTrigger(new GuidTrigger <CoolColor>()); CoolDatabase.PopulateDatabase(db); var colorList = db.Query <CoolColor, Guid>().OrderBy(c => c.LazyValue.Value.Name).Select(c => c.LazyValue.Value).ToList(); foreach (var color in colorList) { Console.WriteLine($"Loaded color {color.Name} with database-generated key {color.Id}."); } var idx = (new Random().Next(0, colorList.Count - 1)); Console.WriteLine($"Picked random color {colorList[idx].Name}"); var combos = db.Query <Combo, int>().Where(c => c.LazyValue.Value.Color.Id == colorList[idx].Id).Select(c => c.LazyValue.Value); var comboList = combos.Select(c => $"{c.Color.Name} {c.Planet.Name} {c.Cat.Name}"); foreach (var combo in comboList.OrderBy(c => c)) { Console.WriteLine($"Found awesome combo {combo}."); } }
/// <summary> /// Handles the application end event. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="System.EventArgs"/> /// instance containing the event data.</param> private static void HandleApplicationEnd(Object sender, EventArgs e) { s_logger.Detach(); s_engine.Dispose(); s_database = null; s_engine = null; }
/// <summary> /// Activate the database instance /// </summary> public void Activate() { if (DesignerProperties.IsInDesignTool) { return; } if (Debugger.IsAttached) { this.sterlingDefaultLogger = new SterlingDefaultLogger(SterlingLogLevel.Verbose); } this.sterlingEngine = new SterlingEngine(); // custom serializer for types this.sterlingEngine.SterlingDatabase.RegisterSerializer <TypeSerializer>(); // change this for more verbose messages this.sterlingDefaultLogger = new SterlingDefaultLogger(SterlingLogLevel.Information); this.sterlingEngine.Activate(); this.Database = this.sterlingEngine.SterlingDatabase.RegisterDatabase <VBForumsMetroDatabase>(new IsolatedStorageDriver()); // see if we need to load it VBForumsMetroDatabase.CheckAndCreate(this.Database); }
/// <summary> /// Handles the application end event. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="System.EventArgs"/> /// instance containing the event data.</param> private static void HandleApplicationEnd(Object sender, EventArgs e) { s_logger.Detach(); s_engine.Dispose(); s_database = null; s_engine = null; }
/// <summary> /// Handles the application startup event. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="System.Windows.StartupEventArgs"/> /// instance containing the event data.</param> private static void HandleApplicationStartup(Object sender, StartupEventArgs e) { s_engine = new SterlingEngine(); s_logger = new SterlingDefaultLogger(SterlingLogLevel.Information); s_engine.Activate(); s_database = s_engine.SterlingDatabase.RegisterDatabase<AppDatabase>(); }
public void TestInit() { _engine = Factory.NewEngine(); _engine.Activate(); _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, GetDriver()); _databaseInstance.PurgeAsync().Wait(); }
/// <summary> /// Handles the application startup event. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="System.Windows.StartupEventArgs"/> /// instance containing the event data.</param> private static void HandleApplicationStartup(Object sender, StartupEventArgs e) { s_engine = new SterlingEngine(); s_logger = new SterlingDefaultLogger(SterlingLogLevel.Information); s_engine.Activate(); s_database = s_engine.SterlingDatabase.RegisterDatabase <AppDatabase>(); }
internal static void Activate() { if (!DesignerProperties.IsInDesignTool) { _engine = new SterlingEngine(); try { // engine could be already activated (in main application or some referenced dll); _engine.Activate(); } catch (SterlingActivationException ex) { } _driver = new IsolatedStorageDriver("EPubReader/"); try { _database = _engine.SterlingDatabase.GetDatabase("EPubReader Database"); } catch (SterlingDatabaseNotFoundException ex) { _database = _engine.SterlingDatabase.RegisterDatabase <Database>(_driver); } } }
/// <summary> /// Called by an application in order to initialize the application extension service. /// </summary> /// <param name="context">Provides information about the application state. </param> public void StartService(ApplicationServiceContext context) { if (DesignerProperties.IsInDesignTool) return; DateTime start = DateTime.Now; _engine = new SterlingEngine(); Current = this; }
public void TestInit() { _engine = Factory.NewEngine(); _engine.SterlingDatabase.RegisterSerializer <TestSerializer>(); _engine.Activate(); _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, GetDriver()); }
public void TestInit() { _engine = Factory.NewEngine(); _engine.Activate(); _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <DirtyDatabase>(TestContext.TestName, GetDriver()); ((DirtyDatabase)_databaseInstance).Predicate = model => true; _databaseInstance.PurgeAsync().Wait(); }
public void TestInit() { _engine = Factory.NewEngine(); _engine.SterlingDatabase.RegisterSerializer <SupportSerializer>(); _engine.Activate(); DatabaseInstance = _engine.SterlingDatabase.RegisterDatabase <CustomSerializerDatabase>(TestContext.TestName, GetDriver()); DatabaseInstance.PurgeAsync().Wait(); }
public static ISterlingDatabaseInstance CreateDatabase() { var engine = new SterlingEngine(new SterlingPlatformAdapter()); engine.SterlingDatabase.RegisterSerializer <SterlingContentSerializer>(); engine.Activate(); return(engine.SterlingDatabase.RegisterDatabase <ContentStoreDB>("TestDB", new MemoryDriver())); }
/// <summary> /// 启动本地数据库服务 /// </summary> /// <param name="context">应用程序池</param> public void StartService(ApplicationServiceContext context) { if (DesignerProperties.IsInDesignTool) { return; } sengine = new SterlingEngine(); Current = this; }
public void Setup() { Tasks = new CompositeDisposable(); DBEngine = new SterlingEngine().Add(Tasks); DBEngine.Activate(); // dbのroot var date = DateTime.Parse("2011/10/27"); Database = new LogDBFileInstance(DBEngine, date,Const.DBPath); }
/// <summary> /// 启动本地数据库服务 /// </summary> /// <param name="context">应用程序池</param> public void StartService(ApplicationServiceContext context) { if (DesignerProperties.IsInDesignTool) { return; } sengine = new SterlingEngine(); Current = this; }
public void StartService(ApplicationServiceContext context) { _engine = new SterlingEngine(); _logger = new SterlingDefaultLogger(SterlingLogLevel.Information); //Создаем локальную базу данных: LocalDataBase = new LocalDB(); Current = this; }
private void RegisterDatabase(IocContainer container) { SterlingEngine engine = new SterlingEngine(); engine.Activate(); container.RegisterInstance<Domain.Database>(engine.SterlingDatabase.RegisterDatabase<Domain.Database>(new FileSystemDriver()) as Domain.Database); container.Register<Domain.Db.ITestQuery, Domain.Db.TestQuery>(); container.Register<Domain.Db.ISubjectQuery, Domain.Db.SubjectQuery>(); }
public void Shutdown() { if (_engine == null) { return; } _engine.Dispose(); _engine = null; _database = null; }
internal static void Deactivate() { if (_engine != null) { _engine.Dispose(); } _engine = null; _driver = null; _database = null; }
public void TestInit() { //_startTime = DateTime.Now; _engine = Factory.NewEngine(); _engine.Activate(); _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>("async"); _modelList = new List <TestModel>(); for (var i = 0; i < MODELS; i++) { _modelList.Add(TestModel.MakeTestModel()); } }
/// <summary> /// Deactivate the database instance /// </summary> public void Deactivate() { if (Debugger.IsAttached && this.sterlingDefaultLogger != null) { this.sterlingDefaultLogger.Detach(); } this.sterlingEngine.Dispose(); this.Database = null; this.sterlingEngine = null; }
public void TestInit() { _engine = Factory.NewEngine(); _engine.Activate(); _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, GetDriver()); _modelList = new List <TestModel>(); for (var i = 0; i < 10; i++) { _modelList.Add(TestModel.MakeTestModel()); _databaseInstance.SaveAsync(_modelList[i]).Wait(); } }
public void TestInit() { _engine = Factory.NewEngine(); _engine.Activate(); _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TriggerDatabase>(TestContext.TestName, GetDriver()); _databaseInstance.PurgeAsync().Wait(); // get the next key in the database for auto-assignment var nextKey = _databaseInstance.Query <TriggerClass, int>().Any() ? (from keys in _databaseInstance.Query <TriggerClass, int>() select keys.Key).Max() + 1 : 1; _databaseInstance.RegisterTrigger(new TriggerClassTestTrigger(nextKey)); }
public void ActivateEngine() { _engine = new SterlingEngine(); _engine.SterlingDatabase.RegisterSerializer<DefaultSerializer>(); _logger = new SterlingDefaultLogger(SterlingLogLevel.Information); _engine.Activate(); _database = _engine.SterlingDatabase.RegisterDatabase<CoachesDatabase>(new IsolatedStorageDriver()); _database.RegisterTrigger(new IdentityTrigger<EventDto>(_database)); _database.RegisterTrigger(new IdentityTrigger<PracticeDrillDto>(_database)); _database.RegisterTrigger(new IdentityTrigger<TeamDto>(_database)); _database.RegisterTrigger(new IdentityTrigger<LocationDto>(_database)); _database.RegisterTrigger(new IdentityTrigger<PlayerDto>(_database)); _database.RegisterTrigger(new IdentityTrigger<SportDto>(_database)); }
public void StartService() { _engine = new SterlingEngine(); if (Debugger.IsAttached) { _logger = new SterlingDefaultLogger(SterlingLogLevel.Verbose); } _engine.Activate(); Database = _engine.SterlingDatabase.RegisterDatabase<BizcardDatabase>(_driver); Database.RegisterTrigger(new IdentityTrigger<Contact>(Database)); Database.RegisterTrigger(new IdentityTrigger<Group>(Database)); Current = this; }
public void TestSaveLateBoundTable() { // test saving and reloading var expected = new TestLateBoundTable { Id = 1, Data = Guid.NewGuid().ToString() }; _databaseInstance.RegisterTableDefinition( _databaseInstance.CreateTableDefinition <TestLateBoundTable, int>(t => t.Id)); _databaseInstance.SaveAsync(expected).Wait(); var actual = _databaseInstance.LoadAsync <TestLateBoundTable>(expected.Id).Result; Assert.NotNull(actual); //Load failed."); Assert.Equal(expected.Id, actual.Id); //Load failed: key mismatch."); Assert.Equal(expected.Data, actual.Data); //Load failed: data mismatch."); _databaseInstance.FlushAsync().Wait(); _engine.Dispose(); var driver = _databaseInstance.Driver; _databaseInstance = null; // bring it back up _engine = Factory.NewEngine(); _engine.Activate(); _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, driver); // do this in a different order _databaseInstance.RegisterTableDefinition( _databaseInstance.CreateTableDefinition <TestSecondLateBoundTable, int>(t => t.Id)); _databaseInstance.RegisterTableDefinition( _databaseInstance.CreateTableDefinition <TestLateBoundTable, int>(t => t.Id)); actual = _databaseInstance.LoadAsync <TestLateBoundTable>(expected.Id).Result; Assert.NotNull(actual); //Load failed after restart."); Assert.Equal(expected.Id, actual.Id); //Load failed: key mismatch after restart."); Assert.Equal(expected.Data, actual.Data); //Load failed: data mismatch after restart."); }
public static void test() { SterlingEngine engine = new SterlingEngine(); engine.Activate(); var dbInstance = engine.SterlingDatabase.RegisterDatabase <WeaponDBInstance>( new FileSystemDriver("weaponDB/")); dbInstance.Purge(); HTMLParser p = new HTMLParser(@"/wiki/List_of_battle_rifles", @"https://en.wikipedia.org"); var x = p.ProcessArticle().ToList(); x.ForEach(w => { dbInstance.Save <Weapon>(w); }); var data = dbInstance.Query <Weapon, string>(); //Weapon weapon = dbInstance.Load<Weapon>("AK-72"); }
public LogDBFileInstance(SterlingEngine engine, DateTime date, string rootPath) : this(engine, date, new PathProvider(rootPath)) { }
public static void RestartEngine() { _engine = new SterlingEngine(); _engine.Activate(); Current = _engine.SterlingDatabase.RegisterDatabase <UsdaDatabase>(new MemoryDriver()); }
/// <summary> /// Called by an application immediately after the <see cref="E:System.Windows.Application.Exit"/> event occurs. /// </summary> public void Exited() { Dispose(); _engine = null; return; }
// Code to execute when the application is closing (eg, user hit Back) // This code will not execute when the application is deactivated private void Application_Closing(object sender, ClosingEventArgs e) { Database.Flush(); _logger.Detach(); _engine.Dispose(); Database = null; _engine = null; }
public SterlingDatabase(SterlingEngine engine) { Engine = engine; TypeResolver = new TableTypeResolver(); _serializer = new AggregateSerializer(engine.PlatformAdapter); }
/// <summary> /// Deactivate the database instance /// </summary> public void Deactivate() { if (Debugger.IsAttached && this.sterlingDefaultLogger != null) { this.sterlingDefaultLogger.Detach(); } this.sterlingEngine.Dispose(); this.Database = null; this.sterlingEngine = null; }
public void DeactivateEngine() { _logger.Detach(); _engine.Dispose(); _database = null; _engine = null; }
public void Exited() { Dispose(); _engine = null; return; }
public LogDBFileInstance(SterlingEngine engine, DateTime date, PathProvider pathProvider) { DBPath = string.Format("logger/{0:yyyyMM}/", date.ToUniversalTime()); var db = engine.SterlingDatabase; Instance = db.RegisterDatabase<LogDB>(new FileSystemDriver(pathProvider, DBPath)); }
public void TestBackupAndRestore() { var driver = GetDriver(); // activate the engine and store the data _engine = Factory.NewEngine(); _engine.Activate(); _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, driver); // test saving and reloading var expected = TestModel.MakeTestModel(); _databaseInstance.SaveAsync(expected).Wait(); // now back it up var memStream = new MemoryStream(); byte[] databaseBuffer; using (var binaryWriter = new BinaryWriter(memStream)) { _engine.SterlingDatabase.BackupAsync <TestDatabaseInstance>(binaryWriter).Wait(); binaryWriter.Flush(); databaseBuffer = memStream.ToArray(); } // now purge the database _databaseInstance.PurgeAsync().Wait(); var actual = _databaseInstance.LoadAsync <TestModel>(expected.Key).Result; // confirm the database is gone Assert.IsNull(actual, "Purge failed, was able to load the test model."); _databaseInstance = null; // shut it all down _engine.Dispose(); _engine = null; // get a new engine _engine = Factory.NewEngine(); // activate it and grab the database again _engine.Activate(); _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, driver); // restore it _engine.SterlingDatabase.RestoreAsync <TestDatabaseInstance>(new BinaryReader(new MemoryStream(databaseBuffer))).Wait(); _engine.Dispose(); _engine = null; // get a new engine _engine = Factory.NewEngine(); // activate it and grab the database again _engine.Activate(); _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, driver); actual = _databaseInstance.LoadAsync <TestModel>(expected.Key).Result; Assert.IsNotNull(actual, "Load failed."); Assert.AreEqual(expected.Key, actual.Key, "Load failed: key mismatch."); Assert.AreEqual(expected.Data, actual.Data, "Load failed: data mismatch."); Assert.IsNull(actual.Data2, "Load failed: suppressed data property not valid on de-serialize."); Assert.IsNotNull(actual.SubClass, "Load failed: sub class is null."); Assert.IsNull(actual.SubClass2, "Load failed: supressed sub class should be null."); Assert.AreEqual(expected.SubClass.NestedText, actual.SubClass.NestedText, "Load failed: sub class text mismtach."); Assert.AreEqual(expected.SubStruct.NestedId, actual.SubStruct.NestedId, "Load failed: sub struct id mismtach."); Assert.AreEqual(expected.SubStruct.NestedString, actual.SubStruct.NestedString, "Load failed: sub class string mismtach."); }
public void Init() { _engine = Factory.NewEngine(); _engine.Activate(); _database = _engine.SterlingDatabase.RegisterDatabase <NestedInstancesDatabase>(TestContext.TestName, GetDriver()); }
private static void _ActivateEngine() { _engine = new SterlingEngine(); _engine.Activate(); _database = _engine.SterlingDatabase.RegisterDatabase<TodoStore>(); }
private void SetupTheDatabase() { // create the sterling engine _engine = new SterlingEngine(); // create a logger for the sterling db _logger = new SterlingDefaultLogger(SterlingLogLevel.Verbose); // activate the sterling engine _engine.Activate(); // Register your database with the sterling engine and specify its persistence in isolated storage Database = _engine.SterlingDatabase.RegisterDatabase<ItemsDatabaseInstance>(new IsolatedStorageDriver()); }
private static void _DeactivateEngine() { _engine.Dispose(); _database = null; _engine = null; }
public void TestSaveShutdownReInitialize() { _databaseInstance.PurgeAsync().Wait(); // test saving and reloading var expected1 = TestModel.MakeTestModel(); var expected2 = TestModel.MakeTestModel(); expected2.GuidNullable = null; var expectedComplex = new TestComplexModel { Id = 5, Dict = new Dictionary <string, string>(), Models = new ObservableCollection <TestModel>() }; for (var x = 0; x < 10; x++) { expectedComplex.Dict.Add(Guid.NewGuid().ToString(), Guid.NewGuid().ToString()); expectedComplex.Models.Add(TestModel.MakeTestModel()); } _databaseInstance.SaveAsync(expected1).Wait(); _databaseInstance.SaveAsync(expected2).Wait(); _databaseInstance.SaveAsync(expectedComplex).Wait(); _databaseInstance.FlushAsync().Wait(); // shut it down _engine.Dispose(); var driver = _databaseInstance.Driver; _databaseInstance = null; // bring it back up _engine = Factory.NewEngine(); _engine.Activate(); _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, driver); var actual1 = _databaseInstance.LoadAsync <TestModel>(expected1.Key).Result; var actual2 = _databaseInstance.LoadAsync <TestModel>(expected2.Key).Result; Assert.NotNull(actual1); //Load failed for 1."); Assert.Equal(expected1.Key, actual1.Key); //Load failed (1): key mismatch."); Assert.Equal(expected1.Data, actual1.Data); //Load failed(1): data mismatch."); Assert.NotNull(actual1.SubClass); //Load failed (1): sub class is null."); Assert.Equal(expected1.SubClass.NestedText, actual1.SubClass.NestedText); //Load failed (1): sub class text mismtach."); Assert.Equal(expected1.GuidNullable, actual1.GuidNullable); //Load failed (1): nullable Guid mismtach."); Assert.NotNull(actual2); //Load failed for 2."); Assert.Equal(expected2.Key, actual2.Key); //Load failed (2): key mismatch."); Assert.Equal(expected2.Data, actual2.Data); //Load failed (2): data mismatch."); Assert.NotNull(actual2.SubClass); //Load failed (2): sub class is null."); Assert.Equal(expected2.SubClass.NestedText, actual2.SubClass.NestedText); //Load failed (2): sub class text mismatch."); Assert.Null(expected2.GuidNullable); //Load failed (2): nullable Guid was not loaded as null."); //insert a third var expected3 = TestModel.MakeTestModel(); _databaseInstance.SaveAsync(expected3).Wait(); actual1 = _databaseInstance.LoadAsync <TestModel>(expected1.Key).Result; actual2 = _databaseInstance.LoadAsync <TestModel>(expected2.Key).Result; var actual3 = _databaseInstance.LoadAsync <TestModel>(expected3.Key).Result; Assert.NotNull(actual1); //Load failed for 1."); Assert.Equal(expected1.Key, actual1.Key); //Load failed (1): key mismatch."); Assert.Equal(expected1.Data, actual1.Data); //Load failed(1): data mismatch."); Assert.NotNull(actual1.SubClass); //Load failed (1): sub class is null."); Assert.Equal(expected1.SubClass.NestedText, actual1.SubClass.NestedText); //Load failed (1): sub class text mismtach."); Assert.NotNull(actual2); //Load failed for 2."); Assert.Equal(expected2.Key, actual2.Key); //Load failed (2): key mismatch."); Assert.Equal(expected2.Data, actual2.Data); //Load failed (2): data mismatch."); Assert.NotNull(actual2.SubClass); //Load failed (2): sub class is null."); Assert.Equal(expected2.SubClass.NestedText, actual2.SubClass.NestedText); //Load failed (2): sub class text mismtach."); Assert.NotNull(actual3); //Load failed for 3."); Assert.Equal(expected3.Key, actual3.Key); //Load failed (3): key mismatch."); Assert.Equal(expected3.Data, actual3.Data); //Load failed (3): data mismatch."); Assert.NotNull(actual3.SubClass); //Load failed (3): sub class is null."); Assert.Equal(expected3.SubClass.NestedText, actual3.SubClass.NestedText); //Load failed (3): sub class text mismtach."); // load the complex var actualComplex = _databaseInstance.LoadAsync <TestComplexModel>(5).Result; Assert.NotNull(actualComplex); //Load failed (complex): object is null."); Assert.Equal(5, actualComplex.Id); //Load failed: id mismatch."); Assert.NotNull(actualComplex.Dict); //Load failed: dictionary is null."); foreach (var key in expectedComplex.Dict.Keys) { var value = expectedComplex.Dict[key]; Assert.True(actualComplex.Dict.Contains(key)); //Load failed: dictionary is missing key."); Assert.Equal(value, actualComplex.Dict[key]); //Load failed: dictionary has invalid value."); } Assert.NotNull(actualComplex.Models); //Load failed: complex missing the model collection."); foreach (var model in expectedComplex.Models) { var targetModel = actualComplex.Models.Where(m => m.Key.Equals(model.Key)).FirstOrDefault(); Assert.NotNull(targetModel); //Load failed for nested model."); Assert.Equal(model.Key, targetModel.Key); //Load failed for nested model: key mismatch."); Assert.Equal(model.Data, targetModel.Data); //Load failed for nested model: data mismatch."); Assert.NotNull(targetModel.SubClass); //Load failed for nested model: sub class is null."); Assert.Equal(model.SubClass.NestedText, targetModel.SubClass.NestedText); //Load failed for nested model: sub class text mismtach."); } }
private void InitialiseDatabase() { SterlingEngine engine = new SterlingEngine(); engine.Activate(); _container.RegisterInstance<SterlingEngine>(engine); _container.RegisterInstance<Database>(engine.SterlingDatabase.RegisterDatabase<Database>(new FileSystemDriver()) as Database); _container.Register<ISubjectQuery, SubjectQuery>(); _container.Register<ISubjects, Subjects>(); _container.Register<ITests, Tests>(); _container.Register<ITestQuery, TestQuery>(); }