private async void btn_Save_Click(object sender, RoutedEventArgs e) { OnProcessing?.Invoke(); await Task.Delay(5000); await _db.SaveChangesAsync(); OnProcessed?.Invoke(_mission, _isNew); }
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(); } } } }