public IList <AugmentationItem> Search(ItemSearchRequest query) { // User only wants recent items, so definitely not buyable. if (query.RecentOnly) { return(new List <AugmentationItem>()); } using (ISession session = SessionCreator.OpenSession()) { using (session.BeginTransaction()) { ICriteria criterias = session.CreateCriteria <AugmentationItem>(); if (!string.IsNullOrEmpty(query.Wildcard)) { criterias.Add(Subqueries.PropertyIn("BaseRecord", DetachedCriteria.For <DatabaseItem>() .Add(Restrictions.InsensitiveLike("Name", string.Format("%{0}%", query.Wildcard.Replace(' ', '%')))) .SetProjection(Projections.Property("Record")))); } DatabaseItemDaoImpl.AddItemSearchCriterias(criterias, query); IList <AugmentationItem> items = criterias.List <AugmentationItem>(); return(items); } } }
public void TestUpdateRecipes() { var parser = new RecipeParser(this.dao); var dbItemDao = new DatabaseItemDaoImpl(factory); dbItemDao.Save(new DatabaseItem { Record = "records/items/crafting/blueprints/armor/craft_armor_decoratedpauldrons.dbr", Name = "Whatever", Id = 123, Stats = new List <DatabaseItemStat> { new DatabaseItemStat { TextValue = "Whatever", Stat = "artifactName" } } }); dbItemDao.Save(new DatabaseItem { Record = "records/items/crafting/blueprints/armor/craft_armorc02_unholyvisageofthecovenant.dbr", Name = "Whatever 2", Id = 1234, Stats = new List <DatabaseItemStat> { new DatabaseItemStat { TextValue = "Whatever 2", Stat = "artifactName" } } }); using (ISession session = factory.OpenSession()) { var tmp = dbItemDao.ListAll(); var sss = tmp[0].Stats; dbItemDao.ListAll().Count.Should().Be.EqualTo(2); // insert stat with name artifactName } parser.UpdateFormulas(Path.Combine("Dao", "TestData", "formulas.gst"), false); dao.ListAll().Count.Should().Be.GreaterThan(0); var numSoftcore = dao.ListAll().Count; parser.UpdateFormulas(Path.Combine("Dao", "TestData", "formulas.gsh"), true); dao.ListAll().Count.Should().Be.GreaterThan(numSoftcore); }
public static ServiceProvider Initialize(ThreadExecuter threadExecuter, SqlDialect dialect) { Logger.Debug("Creating services"); var factory = new SessionFactory(dialect); // Settings should be upgraded early, it contains the language pack etc and some services depends on settings. var settingsService = StartupService.LoadSettingsService(); var grimDawnDetector = new GrimDawnDetector(settingsService); IPlayerItemDao playerItemDao; IDatabaseItemDao databaseItemDao; IDatabaseSettingDao databaseSettingDao; IDatabaseItemStatDao databaseItemStatDao; IItemTagDao itemTagDao; IBuddyItemDao buddyItemDao; IBuddySubscriptionDao buddySubscriptionDao; IRecipeItemDao recipeItemDao; IItemSkillDao itemSkillDao; IAugmentationItemDao augmentationItemRepo; IItemCollectionDao itemCollectionRepo; if (dialect == SqlDialect.Sqlite) { playerItemDao = new PlayerItemRepo(threadExecuter, factory, dialect); databaseItemDao = new DatabaseItemRepo(threadExecuter, factory, dialect); databaseSettingDao = new DatabaseSettingRepo(threadExecuter, factory, dialect); databaseItemStatDao = new DatabaseItemStatRepo(threadExecuter, factory, dialect); itemTagDao = new ItemTagRepo(threadExecuter, factory, dialect); buddyItemDao = new BuddyItemRepo(threadExecuter, factory, dialect); buddySubscriptionDao = new BuddySubscriptionRepo(threadExecuter, factory, dialect); recipeItemDao = new RecipeItemRepo(threadExecuter, factory, dialect); itemSkillDao = new ItemSkillRepo(threadExecuter, factory); augmentationItemRepo = new AugmentationItemRepo(threadExecuter, factory, new DatabaseItemStatDaoImpl(factory, dialect), dialect); itemCollectionRepo = new ItemCollectionRepo(threadExecuter, factory, dialect); } else { databaseItemStatDao = new DatabaseItemStatDaoImpl(factory, dialect); playerItemDao = new PlayerItemDaoImpl(factory, databaseItemStatDao, dialect); databaseItemDao = new DatabaseItemDaoImpl(factory, dialect); databaseSettingDao = new DatabaseSettingDaoImpl(factory, dialect); itemTagDao = new ItemTagDaoImpl(factory, dialect); buddyItemDao = new BuddyItemDaoImpl(factory, databaseItemStatDao, dialect); buddySubscriptionDao = new BuddySubscriptionDaoImpl(factory, dialect); recipeItemDao = new RecipeItemDaoImpl(factory, dialect); itemSkillDao = new ItemSkillDaoImpl(factory); augmentationItemRepo = new AugmentationItemDaoImpl(factory, databaseItemStatDao, dialect); itemCollectionRepo = new ItemCollectionDaoImpl(factory, dialect); } // Chicken and the egg.. var itemStatService = new ItemStatService(databaseItemStatDao, itemSkillDao, settingsService); SearchController searchController = new SearchController( databaseItemDao, playerItemDao, itemStatService, buddyItemDao, augmentationItemRepo, settingsService, itemCollectionRepo ); List <object> services = new List <object>(); services.Add(itemTagDao); services.Add(databaseItemDao); services.Add(databaseItemStatDao); services.Add(playerItemDao); services.Add(databaseSettingDao); services.Add(buddyItemDao); services.Add(buddySubscriptionDao); services.Add(itemSkillDao); services.Add(augmentationItemRepo); //services.Add(userFeedbackService); services.Add(settingsService); services.Add(grimDawnDetector); services.Add(recipeItemDao); services.Add(itemCollectionRepo); services.Add(searchController); services.Add(itemStatService); var cacher = new TransferStashServiceCache(databaseItemDao); services.Add(cacher); Logger.Debug("All services created"); return(new ServiceProvider(services)); }