Beispiel #1
0
        private static async Task <LogUploaderUI2> CreateUI2(LogUploaderLogic logic, IProgress <double> progress = null)
        {
            LogUploaderUI2 ui = null;
            await Task.Run(() => ui = new LogUploaderUI2(logic, progress));

            return(ui);
        }
Beispiel #2
0
        private static async Task <Form> LoadApplication(IProgress <ProgressMessage> progress, string[] args, CancellationToken ct, CancellationTokenSource cts)
        {
            //await Task.Delay(10000);
            SetUpLocalisation();

            progress.Report(new ProgressMessage(0.01, "Processing command line Arguments"));
            var flags = ProcessCommandLineArgs(args);

#if DEBUG
#elif BETA
#elif ALPHA
#else
            if (flags.OverrideLogLevel)
            {
                Logger.LogLevel = flags.LogLevel;
            }
#endif

            progress.Report(new ProgressMessage(0.02, "Loading Settings"));
            SettingsData settings = null;
            {
                Settings mainSettings;
                try
                {
                    mainSettings = LoadSettings(flags);
                    settings     = new SettingsData(mainSettings);
                }
                catch (SettingInitException e)
                {
                    Logger.LogException(e);
                    MessageBox.Show("Faild to Load Settings", "Load Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Exit(ExitCode.LOAD_SETTINGS_ERROR);
                }
            }

            Logger.Message("Setup - SetLanguage");
            SetLanguage(settings);
            Logger.Message("Setup - Load json's");
            LoadJsonData(new Progress <ProgressMessage>((p) => progress.Report(new ProgressMessage(0.06 + (p.Percent * 0.04), "Loading static Data" + " - " + p.Message))));

            if (ct.IsCancellationRequested)
            {
                return(null);
            }

            cts.CancelAfter(TimeSpan.FromMinutes(5));
            Logger.Message("Setup - Check for updates");
            Action UpdateReuest = await CheckForUpdates(settings, new Progress <ProgressMessage>(p => new ProgressMessage(0.10 + (p.Percent * 0.05), p.Message)), ct);

            cts.CancelAfter(Timeout.Infinite);

            if (ct.IsCancellationRequested)
            {
                return(null);
            }

            cts.CancelAfter(TimeSpan.FromMinutes(5));
            Logger.Message("Setup - Check for updates EI");
            await InitEliteInsights(settings, settings, new Progress <ProgressMessage>((p) => progress.Report(new ProgressMessage(0.15 + (p.Percent * 0.05), "Init EliteInsights" + " - " + p.Message))), ct);

            cts.CancelAfter(Timeout.Infinite);

            if (ct.IsCancellationRequested)
            {
                return(null);
            }

            Logger.Message("Setup - Init DB");
            InitDB(new Progress <ProgressMessage>((p) => progress.Report(new ProgressMessage(0.20 + (p.Percent * 0.05), "Local DB" + " - " + p.Message))));

            progress.Report(new ProgressMessage(0.26, "Loading"));

            if (ct.IsCancellationRequested)
            {
                return(null);
            }

            Helper.DiscordPostGen.DiscordPostGenerator.Settings = settings;

            Logger.Message("Setup - Logic");
            var newLogic = new LogUploaderLogic();
            await newLogic.InitLogUploaderLogic(settings,
                                                flags.EnableAutoParse,
                                                flags.EnableAutoUpload,
                                                new Progress <ProgressMessage>(pm => progress.Report(new ProgressMessage(0.27f + (pm.Percent * 0.64f), "Loading - " + pm.Message)))
                                                );

            if (ct.IsCancellationRequested)
            {
                return(null);
            }

            Cleanup = () =>
            {
                newLogic.Dispose();
                UpdateReuest?.Invoke();
            };

            Logger.Message("Setup - UI");
            //return await CreateUI(logic, flags);
            return(await CreateUI2(newLogic, new Progress <double>(p => progress.Report(new ProgressMessage(0.91 + (p * 0.07), "Creating UI")))));
        }