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; } }; }
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)); }
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; } }; }
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)); }