Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }