private void SetColorPath() { OpenFileDialog openFileDialog = new OpenFileDialog(); try { openFileDialog.InitialDirectory = ColorVM.FilePath; openFileDialog.Filter = $"All color files |*{Properties.Resources.ColorExtension};*.clr;*.farbe|" + $"DominoPlanner 3.x color files (*{Properties.Resources.ColorExtension})|*{Properties.Resources.ColorExtension}|" + "DominoPlanner 2.x color files (*.clr)|*.clr|" + "Dominorechner color files (*.farbe)|*.farbe|" + "All files (*.*)|*.*"; openFileDialog.InitialDirectory = Path.Combine(Environment.CurrentDirectory, "Resources"); } catch (Exception) { } if (openFileDialog.ShowDialog() == true) { if (File.Exists(openFileDialog.FileName)) { ColorRepository colorList; int colorListVersion = 0; try { colorList = Workspace.Load <ColorRepository>(openFileDialog.FileName); colorListVersion = 3; } catch { // Colorlist version 1 or 2 try { colorList = new ColorRepository(openFileDialog.FileName); colorListVersion = 1; } catch { // file not readable Errorhandler.RaiseMessage("Color repository file is invalid", "Error", Errorhandler.MessageType.Error); return; } } File.Delete(Properties.Settings.Default.StandardColorArray); if (colorListVersion == 3) { File.Copy(openFileDialog.FileName, Properties.Settings.Default.StandardColorArray); } else if (colorListVersion != 0) { colorList.Save(Properties.Settings.Default.StandardColorArray); } } Workspace.CloseFile(Properties.Settings.Default.StandardColorArray); ColorVM.Reload(Properties.Settings.Default.StandardColorArray); } }
private async void SetColorPath() { var StandardColorPath = UserSettings.Instance.StandardColorArray; OpenFileDialog openFileDialog = new OpenFileDialog(); try { openFileDialog.Filters = new System.Collections.Generic.List <FileDialogFilter> { new FileDialogFilter() { Extensions = new System.Collections.Generic.List <string> { Declares.ColorExtension, "clr", "farbe" }, Name = _("All color files") }, new FileDialogFilter() { Extensions = new System.Collections.Generic.List <string> { Declares.ColorExtension }, Name = _("DominoPlanner 3.x color files") }, new FileDialogFilter() { Extensions = new System.Collections.Generic.List <string> { "clr" }, Name = _("DominoPlanner 2.x color files") }, new FileDialogFilter() { Extensions = new System.Collections.Generic.List <string> { "farbe" }, Name = _("Dominorechner color files") }, }; if (Environment.OSVersion.Platform == PlatformID.Win32NT) { openFileDialog.Directory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources"); } else { // otherwise, the dialog is opened in the parent directory (see https://github.com/AvaloniaUI/Avalonia/issues/4141) // TODO: check macos openFileDialog.Directory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources", "lamping.DColor"); } } catch (Exception) { } var result = await openFileDialog.ShowAsyncWithParent <SetStandardV>(); if (result != null && result.Length != 0) { var filename = result[0]; if (File.Exists(filename)) { ColorRepository colorList; int colorListVersion; try { colorList = Workspace.Load <ColorRepository>(filename); colorListVersion = 3; } catch { // Colorlist version 1 or 2 try { colorList = new ColorRepository(filename); colorListVersion = 1; } catch { // file not readable await Errorhandler.RaiseMessage(GetParticularString("When importing color list fails", "Color repository file is invalid"), _("Error"), Errorhandler.MessageType.Error); return; } } File.Delete(StandardColorPath); if (colorListVersion == 3) { File.Copy(filename, StandardColorPath); } else if (colorListVersion != 0) { colorList.Save(StandardColorPath); } } Workspace.CloseFile(StandardColorPath); ColorVM.Reload(StandardColorPath); } }