예제 #1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            var logger = new SerilogLoggerProvider(Log.Logger).CreateLogger(nameof(Program));

            services.AddSingleton(logger);

            var wowProcess = new WowProcess();
            var wowScreen  = new WowScreen(logger, wowProcess);

            wowScreen.GetRectangle(out var rect);

            var addonConfig       = AddonConfig.Load();
            var addonConfigurator = new AddonConfigurator(logger, addonConfig);

            if (!addonConfig.IsDefault() && !addonConfigurator.Installed())
            {
                // At this point the webpage never loads so fallback to configuration page
                AddonConfig.Delete();
                DataFrameConfiguration.RemoveConfiguration();
            }

            if (DataFrameConfiguration.Exists() &&
                !DataFrameConfiguration.IsValid(rect, addonConfigurator.GetInstalledVersion()))
            {
                // At this point the webpage never loads so fallback to configuration page
                DataFrameConfiguration.RemoveConfiguration();
            }

            if (AddonConfig.Exists() && DataFrameConfiguration.Exists())
            {
                var dataConfig    = DataConfig.Load();
                var pather        = GetPather(logger, dataConfig);
                var botController = new BotController(logger, pather, dataConfig, Configuration);
                services.AddSingleton <IBotController>(botController);
                services.AddSingleton <IGrindSessionHandler>(botController.GrindSessionHandler);
                services.AddSingleton <IGrindSession>(botController.GrindSession);
                services.AddSingleton <IAddonReader>(botController.AddonReader);
                services.AddMatBlazor();
            }
            else
            {
                services.AddSingleton <IBotController>(new ConfigBotController());
                services.AddSingleton <IAddonReader>(new ConfigAddonReader());
            }

            services.AddRazorPages();
            services.AddServerSideBlazor();
            services.AddBlazorTable();
        }
 public void Delete()
 {
     DeleteAddon();
     AddonConfig.Delete();
 }