示例#1
0
        private void TreeViewImportList_Click(object sender, RoutedEventArgs e)
        {
            var folder = TV.GetSelectedTag <Folder>();

            if (folder == null)
            {
                return;
            }

            var dlg = new OpenFileDialog();

            dlg.AddExtension     = true;
            dlg.CheckPathExists  = true;
            dlg.CheckPathExists  = true;
            dlg.DefaultExt       = ".json";
            dlg.RestoreDirectory = true;
            dlg.Title            = "Choose a list to import";
            dlg.Filter           = "JSON files (*.json)|*.json|All files (*.*)|*.*";
            dlg.FilterIndex      = 1;
            if (dlg.ShowDialog(this).GetValueOrDefault())
            {
                string s   = File.ReadAllText(dlg.FileName, Encoding.UTF8);
                var    lwr = JsonUtilities.Deserialize <ListWithRows>(s);
                if (lwr.List != null)
                {
                    string name        = lwr.List.DisplayName;
                    bool   showOptions = false;
                    if (folder.HasLazyChild)
                    {
                        folder.LazyLoadChildren();
                    }

                    var  list         = folder.Children.OfType <List>().FirstOrDefault(l => l.DisplayName.EqualsIgnoreCase(name));
                    List existingList = list;
                    int  i            = 1;
                    while (list != null)
                    {
                        showOptions = true;
                        name        = lwr.List.DisplayName + " - Copy(" + i + ")";
                        list        = folder.Children.OfType <List>().FirstOrDefault(l => l.DisplayName.EqualsIgnoreCase(name));
                        i++;
                    }

                    var def = new ImportOptionsDefinition(lwr.List, existingList, name);
                    if (showOptions)
                    {
                        var options = new ImportOptions(def);
                        options.Owner = this;
                        if (!options.ShowDialog().GetValueOrDefault())
                        {
                            return;
                        }
                    }

                    lwr.Import(folder, name, def);
                    this.ShowMessage("Ok");
                }
            }
        }
示例#2
0
        public ImportOptions(ImportOptionsDefinition definition)
        {
            if (definition == null)
            {
                throw new ArgumentNullException(nameof(definition));
            }

            InitializeComponent();
            DataContext = definition;
        }