Esempio n. 1
0
        public override void Reload()
        {
            var selectedTagIds = TagButtons.Select(ibvm => ibvm.CurrentTag.Id);

            TagButtons.CollectionChanged -= OnTagButtonsChanged;
            var selectedOmniId = SelectedOmni?.Id ?? -1;

            Context.Dispose();
            Context = OmniTagDatabaseContextFactory.GetNewContext();

            AllOmnis = Context.Omnis.Where(o => o.DateDeleted == null).OrderBy(o => o.Summary).ToList();
            var tags = new ObservableCollection <Tag>(Context.Tags.Where(t => t.DateDeleted == null).OrderBy(t => t.Name).ToList());

            TagSearchDataContext.AllValues = tags;

            var selectedTagList = tags.Where(t => selectedTagIds.Contains(t.Id))
                                  .ToList()
                                  .Select(t => new TagButtonViewModel(t));

            TagButtons = new ObservableCollection <TagButtonViewModel>(selectedTagList);
            TagButtons.CollectionChanged += OnTagButtonsChanged;
            OnTagButtonsChanged(TagButtons, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));

            OmniSearchDataContext.SelectedValue = selectedOmniId == -1
                ? null
                : OmniSearchDataContext.AllValues.SingleOrDefault(o => o.Id == selectedOmniId);
        }
Esempio n. 2
0
 private void ToggleTagSearch()
 {
     ShowTagSearch = !ShowTagSearch;
     if (!ShowTagSearch)
     {
         TagButtons.Clear();
     }
 }
Esempio n. 3
0
        private void RemoveTag(object param)
        {
            var tagVM = param as TagButtonViewModel;

            if (tagVM == null)
            {
                return;
            }

            TagButtons.Remove(tagVM);
        }
Esempio n. 4
0
 private void OnTagButtonsChanged(object sender, NotifyCollectionChangedEventArgs e)
 {
     if (TagButtons.Count == 0)
     {
         OmniSearchDataContext.AllValues = new ObservableCollection <Omni>(AllOmnis);
     }
     else
     {
         OmniSearchDataContext.AllValues = new ObservableCollection <Omni>(
             AllOmnis.Where(o => TagButtons.All(vm => o.Tags.Contains(vm.CurrentTag))).ToList()
             );
     }
 }
Esempio n. 5
0
        private void AddTag()
        {
            Tag tag = TagSearchDataContext.SelectedValue;

            if (tag == null)
            {
                tag = TagSearchDataContext.FilteredTags.SingleOrDefault(t => t.Name == TagSearchDataContext.FullSearchText);
                if (tag == null)
                {
                    return;
                }
            }

            if (TagButtons.All(tb => tb.CurrentTag.Name != tag.Name))
            {
                TagButtons.Add(new TagButtonViewModel(tag));
            }

            TagSearchDataContext.FullSearchText = String.Empty;
            TagSearchDataContext.SelectedValue  = null;
        }