private async Task PopulateViewportsAsync() { var dispatcher = Dispatcher.CurrentDispatcher; await Task.Run(async() => { try { dispatcher.Invoke(() => ModuleViewports.Clear()); var viewportTemplates = _viewportController.GetViewportTemplates(); var installedModules = await SettingsController.GetInstalledAircraftModulesAsync(); await dispatcher.InvokeAsync(() => { foreach (var template in viewportTemplates) { var module = installedModules.First(m => m.ModuleId == template.ModuleId); var model = new ModuleViewportModel(template.TemplateName, template.ExampleImageUrl, module, template.Viewports.ToArray()); model.IsValidSetup.Value = _viewportController.IsValidViewports(model.Viewports.ToArray()); ModuleViewports.Add(model); } }); } catch (Exception e) { Tracer.Error(e); } }); }
private void OnRemoveModuleViewport() { try { var moduleViewport = SelectedModuleViewport.Value; if (moduleViewport == null) { return; } ModuleViewports.Remove(moduleViewport); _viewportController.RemoveViewportTemplate(moduleViewport.Module.Value.ModuleId); } catch (Exception e) { GeneralExceptionHandler.Instance.OnError(e); } }