Пример #1
0
 public void MoveItemDown()
 {
     if (SelectedTreeViewItem is CategoryViewModel)
     {
         CategoryViewModel vm = SelectedTreeViewItem as CategoryViewModel;
         SubItems.MoveItemDown(vm);
     }
     else if (SelectedTreeViewItem is StoryViewModel)
     {
         StoryViewModel vm = SelectedTreeViewItem as StoryViewModel;
         if (vm.Model.CategoryId == null)
         {
             SubItems.MoveItemDown(vm);
         }
         else
         {
             CategoryViewModel category = Categories.Single(i => i.Model.id == vm.Model.CategoryId);
             category.Stories.MoveItemDown(vm);
         }
     }
     else if (SelectedTreeViewItem is ChapterViewModel)
     {
         ChapterViewModel vm = SelectedTreeViewItem as ChapterViewModel;
         vm.StoryVm.Chapters.MoveItemDown(vm);
     }
     else if (SelectedTreeViewItem is SceneViewModel)
     {
         SceneViewModel vm = SelectedTreeViewItem as SceneViewModel;
         vm.ChapterVm.Scenes.MoveItemDown(vm);
     }
 }
Пример #2
0
 public bool CanMoveItemDown()
 {
     if (SelectedTreeViewItem == null)
     {
         return(false);
     }
     if (SelectedTreeViewItem is CategoryViewModel)
     {
         return(SubItems.CanMoveItemDown(SelectedTreeViewItem as CategoryViewModel));
     }
     else if (SelectedTreeViewItem is StoryViewModel)
     {
         StoryViewModel vm = SelectedTreeViewItem as StoryViewModel;
         if (vm.Model.CategoryId == null)
         {
             return(SubItems.CanMoveItemDown(vm));
         }
         else
         {
             CategoryViewModel category = Categories.Single(i => i.Model.id == vm.Model.CategoryId);
             return(category.Stories.CanMoveItemDown(vm));
         }
     }
     else if (SelectedTreeViewItem is ChapterViewModel)
     {
         ChapterViewModel vm = SelectedTreeViewItem as ChapterViewModel;
         return(vm.StoryVm.Chapters.CanMoveItemDown(vm));
     }
     else if (SelectedTreeViewItem is SceneViewModel)
     {
         SceneViewModel vm = SelectedTreeViewItem as SceneViewModel;
         return(vm.ChapterVm.Scenes.CanMoveItemDown(vm));
     }
     return(false);
 }
Пример #3
0
 public void UpdateStoryInTree(StoryViewModel story)
 {
     if (story.Model.CategoryId == null)
     {
         var cat = Categories.SingleOrDefault(i => i.Stories.Contains(story));
         if (cat != null)
         {
             cat.Stories.Remove(story);
             cat.UpdateStorySortIndices();
         }
         if (!SubItems.Contains(story))
         {
             SubItems.Add(story);
         }
     }
     else
     {
         var cat = Categories.SingleOrDefault(i => i.Stories.Contains(story));
         if (cat != null && cat.Model.id != story.Model.CategoryId)
         {
             cat.Stories.Remove(story);
             cat.UpdateStorySortIndices();
         }
         else
         {
             cat = Categories.Single(i => i.Model.id == story.Model.CategoryId);
             if (!cat.Stories.Contains(story))
             {
                 cat.Stories.Add(story);
             }
         }
     }
 }
Пример #4
0
 public void DeleteSubItem(IUniverseSubItem subItem)
 {
     if (subItem is StoryViewModel)
     {
         StoryViewModel story = (StoryViewModel)subItem;
         Stories.Remove(story);
         if (story.Model.CategoryId != null)
         {
             CategoryViewModel cat = Categories.Single(i => i.Model.id == story.Model.CategoryId);
             cat.Stories.Remove(story);
             cat.UpdateStorySortIndices();
         }
         UpdateSubItemSortIndices();
     }
     else if (subItem is CategoryViewModel)
     {
         CategoryViewModel     cat     = (CategoryViewModel)subItem;
         List <StoryViewModel> stories = cat.Stories.ToList();
         foreach (var story in stories)
         {
             story.Model.CategoryId = null;
             story.SortIndex        = SubItems.Max(i => i.SortIndex) + 1;
             story.Save();
             SubItems.Add(story);
         }
         Categories.Remove(cat);
         SubItems.Remove(cat);
         UpdateSubItemSortIndices();
     }
 }
Пример #5
0
        public void CreateStory()
        {
            Story story = new Story(Model.Connection);

            story.UniverseId = Model.id;

            StoryPropertiesDialog dialog = new StoryPropertiesDialog(DialogOwner, story, Categories);
            bool?result = dialog.ShowDialog();

            if (result.HasValue && result.Value)
            {
                if (story.CategoryId == null)
                {
                    if (SubItems.Count > 0)
                    {
                        story.SortIndex = SubItems.Max(i => i.SortIndex) + 1;
                    }
                    else
                    {
                        story.SortIndex = 0;
                    }
                }
                else
                {
                    if (Stories.Count(i => i.Model.CategoryId == story.CategoryId) > 0)
                    {
                        story.SortIndex = Stories.Where(i => i.Model.CategoryId == story.CategoryId).Max(i => i.SortIndex + 1);
                    }
                    else
                    {
                        story.SortIndex = 0;
                    }
                }
                story.Create();
                StoryViewModel storyVm = new StoryViewModel(story);
                storyVm.UniverseVm = this;
                Stories.Add(storyVm);
                UpdateStoryInTree(storyVm);
            }
        }