private async void CreateExperimentAction() { var dialog = (BaseMetroDialog)Application.Current.Windows.OfType <MainWindow>().First().Resources["ExperimentDialog"]; var experimentDialogViewModel = new ExperimentDialogViewModel { DialogCloseAction = async(vm) => { await MetroDialogCoordinator.HideMetroDialogAsync(this, dialog); }, DialogAddAction = async(vm) => { var newExperimentVm = new ExperimentViewModel(); newExperimentVm.InitFieldsFrom(vm); ExperimentListViewModel.ExperimentTileCollection.Add(newExperimentVm); EntityDataProvider <ExperimentEntity> .Instance.SaveManager.Map(newExperimentVm); Logger.Info(StringResourceProvider.Instance[StringResourceProvider.Keys.Experiment_PLACE_WasAdded].Value, newExperimentVm.Name); //todo save previous selected item data ExperimentListViewModel.SelectedExperimentTile = null; await Task.Delay(300); ExperimentListViewModel.SelectedExperimentTile = newExperimentVm; await MetroDialogCoordinator.HideMetroDialogAsync(this, dialog); }, Name = "Experiment #" + DateTime.Now.ToString("yyyy MMMM dd HH:mm"), DateTime = DateTime.Now, Category = "Spectrum", WaveMax = 720, WaveMin = 430, ExperimentStatus = ExperimentStatus.Unknown, //DistanceRange = new ObservableCollection<double>() { 1.25, 1.5, 1.75, 2, 2.5 }, DistanceRange = new ObservableCollection <double>() { 1.25, 1.375, 1.5, 1.625, 1.75, 1.875, 2, 2.25, 2.5 }, SpectrometerName = "LOTIS CMS-400", BaseDistance = 1.25, DistanceToAdd = 2 }; //dialog.Content = experimentDialogViewModel; dialog.DataContext = experimentDialogViewModel; experimentDialogViewModel.PhysicModel = ParamsRetrieverManager.GetParamsRetrievers().FirstOrDefault(); await MetroDialogCoordinator.ShowMetroDialogAsync(this, dialog); }
private async void SettingsAction() { var dialog = (BaseMetroDialog)Application.Current.Windows.OfType <MainWindow>().First().Resources["SettingsDialog"]; var settingsViewModel = new SettingsViewModel { DialogCloseAction = async(vm) => { await MetroDialogCoordinator.HideMetroDialogAsync(this, dialog); }, DialogSaveAction = async(vm) => { try { var lang = ((SettingsViewModel)vm).Language; var path = ((SettingsViewModel)vm).SavePath; if (lang != "En") { var xml = XElement.Load($"Language/{lang}.xml"); StringResourceProvider.Instance.PopulateStringResources(xml.Elements().ToDictionary(x => x.Attribute("ElementID")?.Value, x => x.Value)); } else { StringResourceProvider.Instance.SetToDefaultStringResources(); } //Logger.Info(""); } catch (Exception e) { Logger.Error(e); } await MetroDialogCoordinator.HideMetroDialogAsync(this, dialog); }, }; //dialog.Content = experimentDialogViewModel; dialog.DataContext = settingsViewModel; await MetroDialogCoordinator.ShowMetroDialogAsync(this, dialog); }