Ejemplo n.º 1
0
        public override void LoadData()
        {
            var setting = Context.GetSettingOrDefaultAndSave(Setting.ShowTagSearchOnStartup, "false");

            bool parse;

            ShowTagSearch = Boolean.TryParse(setting.Value, out parse) && parse;

            _imageTempLocation = Context.GetSettingOrDefaultAndSave(Setting.EmbeddedImageTempDirectory,
                                                                    OmniTextRenderer.DefaultEmbeddedImageLocation).Value;

            TagButtons = new ObservableCollection <TagButtonViewModel>();
            TagButtons.CollectionChanged += OnTagButtonsChanged;

            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 = new TagSearchViewModel(tags)
            {
                HintText           = "Filter by Tag...",
                DisplayMember      = nameof(Tag.Name),
                ShowEnterButton    = true,
                EnterText          = "Add",
                EnterCommand       = AddTagCommand,
                SearchCommand      = AddTagCommand,
                ClickSelectCommand = AddTagCommand,
                UpdateSearchTextWhenSelectionChanges = true,
                EnableEnterFunc = s => TagSearchDataContext.FilteredTags.Any(t => t.Name == s),
                Filter          = t => t.Name.ToUpper().Contains(TagSearchDataContext.SearchText.ToUpper())
            };

            OmniSearchDataContext = new SearchViewModel <Omni>(new ObservableCollection <Omni>(AllOmnis))
            {
                DisplayMember = nameof(Omni.Summary),
                Filter        = o => o.Summary.ToUpper().Contains(OmniSearchDataContext.SearchText.ToUpper())
            };
            OmniSearchDataContext.PropertyChanged += (sender, e) =>
            {
                if (e.PropertyName == nameof(OmniSearchDataContext.SelectedValue))
                {
                    SelectedOmni = OmniSearchDataContext.SelectedValue;
                }
            };
        }
Ejemplo n.º 2
0
        public ViewResult TagSearch(string Tag)
        {
            List <string> resultTags = new List <string>();

            var tags = string.Join(", ", EntityRepository.Articles.Select(a => a.Tags).Distinct());

            foreach (var singleTag in tags.Split(',').Distinct())
            {
                resultTags.Add(singleTag);
            }

            TagSearchViewModel result = new TagSearchViewModel()
            {
                articles = EntityRepository.Articles.Where(a => a.Tags.Contains(Tag.Trim())),
                tags     = resultTags
            };

            return(View(result));
        }
Ejemplo n.º 3
0
        public override void LoadData()
        {
            AllTags     = new ObservableCollection <Tag>(Context.Tags.Where(t => t.DateDeleted == null).OrderBy(t => t.Name).ToList());
            SelectedTag = null;

            TagSearchDataContext = new TagSearchViewModel(AllTags)
            {
                EnterCommand     = AddNewTagCommand,
                SearchCommand    = SearchTagCommand,
                EnterText        = "Add New",
                DisplayMember    = nameof(Tag.Name),
                ShowEnterButton  = true,
                ShowStatusFilter = true,
                EnableEnterFunc  = searchText =>
                {
                    if (String.IsNullOrWhiteSpace(searchText))
                    {
                        return(false);
                    }
                    if (TagSearchDataContext.AllValues.Any(t => String.Equals(t.Name, searchText, StringComparison.InvariantCultureIgnoreCase)))
                    {
                        return(false);
                    }
                    return(true);
                },
                Filter = s => s.Name.ToUpper().Contains(TagSearchDataContext.SearchText.ToUpper())
            };

            TagSearchDataContext.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(TagSearchDataContext.SelectedValue))
                {
                    SelectedTag = TagSearchDataContext.SelectedValue;
                }
            };
        }
Ejemplo n.º 4
0
        public IActionResult ById(int id, int pageNumber = 1)
        {
            var name = this.tagsService.GetName(id);

            if (name == null)
            {
                return(this.NotFound());
            }

            pageNumber = pageNumber < 1 ? 1 : pageNumber;

            var viewModel = new TagSearchViewModel()
            {
                Id           = id,
                Name         = name,
                Pages        = this.tagsService.SearchPagesByTag <PageInfoViewModel>(id, pageNumber),
                Posts        = this.tagsService.SearchPostsByTag <PostViewModel>(id, pageNumber),
                Items        = Math.Max(this.tagsService.SearchPostsByTagCount(id), this.tagsService.SearchPagesByTagCount(id)),
                ItemsPerPage = 20,
                PageNumber   = pageNumber,
            };

            return(this.View(viewModel));
        }