Example #1
0
        // TODO: This creates another session instance, should be executed inside the ThreadExecuter
        public static void PrintStartupInfo(SessionFactory factory, SettingsService settings)
        {
            if (settings.GetLocal().StashToLootFrom == 0)
            {
                Logger.Info("IA is configured to loot from the last stash page");
            }
            else
            {
                Logger.Info($"IA is configured to loot from stash page #{settings.GetLocal().StashToLootFrom}");
            }

            if (settings.GetLocal().StashToDepositTo == 0)
            {
                Logger.Info("IA is configured to deposit to the second-to-last stash page");
            }
            else
            {
                Logger.Info($"IA is configured to deposit to stash page #{settings.GetLocal().StashToDepositTo}");
            }

            using (var session = factory.OpenSession()) {
                var numItemsStored = session.CreateCriteria <PlayerItem>()
                                     .SetProjection(NHibernate.Criterion.Projections.RowCountInt64())
                                     .UniqueResult <long>();

                Logger.Info($"There are {numItemsStored} items stored in the database.");
            }


            if (settings.GetPersistent().BuddySyncEnabled)
            {
                Logger.Info($"Buddy items is enabled with user id {settings.GetPersistent().BuddySyncUserIdV2}");
            }
            else
            {
                Logger.Info("Buddy items is disabled");
            }

            if (settings.GetPersistent().ShowRecipesAsItems)
            {
                Logger.Info("Show recipes as items is enabled");
            }
            else
            {
                Logger.Info("Show recipes as items is disabled");
            }

            Logger.Info("Transfer to any mod is " + (settings.GetPersistent().TransferAnyMod ? "enabled" : "disabled"));
            Logger.Info("Experimental updates is " + (settings.GetPersistent().SubscribeExperimentalUpdates ? "enabled" : "disabled"));


            var mods = GlobalPaths.TransferFiles;

            if (mods.Count == 0)
            {
                Logger.Warn("No transfer files has been found");
            }
            else
            {
                Logger.Info("The following transfer files has been found:");
                foreach (var mod in mods)
                {
                    Logger.Info($"\"{mod.Filename}\": Mod: \"{mod.Mod}\", HC: {mod.IsHardcore}");
                }
            }

            Logger.Info("There are items stored for the following mods:");
            foreach (var entry in new PlayerItemDaoImpl(factory, new DatabaseItemStatDaoImpl(factory)).GetModSelection())
            {
                Logger.Info($"Mod: \"{entry.Mod}\", HC: {entry.IsHardcore}");
            }

            var gdPath = new DatabaseSettingDaoImpl(factory).GetCurrentDatabasePath();

            if (string.IsNullOrEmpty(gdPath))
            {
                Logger.Info("The path to Grim Dawn is unknown (not great)");
            }
            else
            {
                Logger.Info($"The path to Grim Dawn is \"{gdPath}\"");
            }

            Logger.Info("Startup data dump complete");
        }
Example #2
0
        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));
        }