private async void btn_Save_Click(object sender, RoutedEventArgs e)
        {
            OnProcessing?.Invoke();
            await Task.Delay(5000);

            await _db.SaveChangesAsync();

            OnProcessed?.Invoke(_mission, _isNew);
        }
Exemple #2
0
        private async void btn_56_Click(object sender, RoutedEventArgs e)
        {
            if (_currentMission != null)
            {
                var controller = await this.ShowProgressAsync("Please wait...", "Running Process 56 script.");

                controller.SetIndeterminate();

                try {
                    AIF56Data d = new AIF56Data();
                    d.LH7       = UC_AccountSetting.LH7;
                    d.MissionId = _currentMission.Id;

                    ScriptEngine <AIF56, AIF56Data> script = new ScriptEngine <AIF56, AIF56Data>();
                    script.StepProgress.ProgressChanged += (s, pe) => {
                        double progress = double.Parse(pe.Current.ToString()) / double.Parse(pe.Total.ToString());
                        controller.SetProgress(progress);
                        controller.SetMessage($"{pe.Current}/{pe.Total}");
                    };



                    var msg = await Task.Run(() => script.Run(d));


                    _currentMission.Is56Process = true;
                    await _db.SaveChangesAsync();

                    controller.SetMessage("Finished");

                    await controller.CloseAsync();

                    loadMissions();

                    if (!string.IsNullOrEmpty(msg))
                    {
                        await this.ShowMessageAsync("Warning", msg);
                    }
                }
                catch (Exception ex) {
                    while (ex.InnerException != null)
                    {
                        ex = ex.InnerException;
                    }
                    await this.ShowMessageAsync("Error", ex.Message);
                }
                finally {
                    if (controller.IsOpen)
                    {
                        await controller.CloseAsync();
                    }
                }
            }
        }