コード例 #1
0
        public void CreateCategory()
        {
            MarkdownCategory category = new MarkdownCategory(UniverseVm.Model.Connection);

            category.Name       = "New Category";
            category.UniverseId = UniverseVm.Model.id;
            MarkdownCategoryDialog dialog = new MarkdownCategoryDialog(DialogOwner, Categories, category);
            bool?result = dialog.ShowDialog();

            if (result.HasValue && result.Value)
            {
                category.Create();
                MarkdownCategoryViewModel vm = new MarkdownCategoryViewModel(category, UniverseVm);
                Categories.Add(vm);
                if (category.ParentId != null)
                {
                    vm.Parent = Categories.Single(i => i.Model.id == category.ParentId);
                    vm.Parent.Children.Add(vm);
                }
                else
                {
                    Items.Add(vm);
                }
            }
        }
コード例 #2
0
        public void Load()
        {
            Items.Clear();

            List <MarkdownCategory>         dbCategories = MarkdownCategory.GetAllMarkdownDocuments(UniverseVm.Model.Connection).Where(i => i.UniverseId == UniverseVm.Model.id).ToList();
            List <MarkdownCategoryDocument> dbCatDocs    = MarkdownCategoryDocument.GetAllMarkdownDocuments(UniverseVm.Model.Connection).ToList();

            // Filter out "special" docs (attached to tickets or files)
            List <MarkdownDocument> dbDocs = MarkdownDocument.GetAllMarkdownDocuments(UniverseVm.Model.Connection).Where(i => i.UniverseId == UniverseVm.Model.id && !i.IsSpecial).ToList();

            List <MarkdownCategoryViewModel> categories = dbCategories.Select(i => new MarkdownCategoryViewModel(i, UniverseVm)).ToList();
            List <MarkdownDocumentViewModel> docs       = dbDocs.Select(i => new MarkdownDocumentViewModel(i, UniverseVm)).ToList();

            // Link up categories.
            foreach (var cat in categories)
            {
                Categories.Add(cat);
                cat.UniverseVm = UniverseVm;
                if (cat.Model.ParentId == null)
                {
                    Items.Add(cat);
                }
                else
                {
                    MarkdownCategoryViewModel parent = categories.Single(i => i.Model.id == cat.Model.ParentId);
                    cat.Parent = parent;
                    parent.Children.Add(cat);
                }

                // Find any documents that belong to this category.
                var catDocs = dbCatDocs.Where(i => i.MarkdownCategoryId == cat.Model.id).ToList();
                foreach (var item in catDocs)
                {
                    MarkdownDocumentViewModel doc = docs.Single(i => i.Model.id == item.MarkdownDocumentId);
                    doc.Parent = cat;
                    cat.Children.Add(doc);
                }
            }

            // Find any documents that are not in a category.
            foreach (var doc in docs.Where(i => i.Parent == null).ToList())
            {
                Items.Add(doc);
            }
        }
コード例 #3
0
        private void okay()
        {
            if (string.IsNullOrWhiteSpace(nameTextBox.Text))
            {
                nameTextBox.SelectAll();
                nameTextBox.Focus();
                return;
            }
            MarkdownCategory selectedCat = (MarkdownCategory)categoryComboBox.SelectedItem;

            if (selectedCat.id == -1)
            {
                _category.ParentId = null;
            }
            else
            {
                _category.ParentId = selectedCat.id;
            }
            _category.Name    = nameTextBox.Text;
            this.DialogResult = true;
            Close();
        }
コード例 #4
0
        public MarkdownCategoryDialog(Window owner, BindingList <MarkdownCategoryViewModel> categories, MarkdownCategory category)
        {
            InitializeComponent();
            Owner      = owner;
            Categories = new BindingList <MarkdownCategory>();
            foreach (var c in categories)
            {
                if (c.Model.id != category.id)
                {
                    Categories.Add(c.Model);
                }
            }

            // Add "No category" option.
            MarkdownCategory noCat = new MarkdownCategory(category.Connection);

            noCat.id   = -1;
            noCat.Name = "NONE";

            Categories.Insert(0, noCat);

            _category = category;
        }
コード例 #5
0
 public MarkdownCategoryViewModel(MarkdownCategory model, UniverseViewModel universe)
 {
     Model      = model;
     UniverseVm = universe;
 }