示例#1
0
        public async Task <IActionResult> FindTags([FromBody] TagSearchRequest request, CancellationToken cancellationToken)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState)); // 400
            }

            try {
                var result = await _historian.FindTags(User, request.ToTagDefinitionFilter(), cancellationToken).ConfigureAwait(false);

                return(Ok(result.Select(x => x.ToTagDefinitionDto()).ToArray())); // 200
            }
            catch (ArgumentException) {
                return(BadRequest()); // 400
            }
            catch (OperationCanceledException) {
                return(StatusCode(204)); // 204
            }
            catch (SecurityException) {
                return(Forbid()); // 403
            }
            catch (NotSupportedException) {
                return(BadRequest()); // 400
            }
            catch (NotImplementedException) {
                return(BadRequest()); // 400
            }
        }
示例#2
0
        void ApplyUrlQueryTagsToBlogSearchRequest(BlogArticleSearchRequest request)
        {
            var tagQueryString = Request.QueryString["tags"];

            if (string.IsNullOrEmpty(tagQueryString))
            {
                return;
            }

            var urlQueryTags = tagQueryString.Split(',');

            if (urlQueryTags != null && urlQueryTags.Any())
            {
                var tagSearchRequest = new TagSearchRequest
                {
                    RootPath = Context.Site.RootPath,
                    TagNames = urlQueryTags
                };

                var tags = tagSearchService.Search(tagSearchRequest);

                if (tags.Results.Any())
                {
                    request.TagIds = tags.Results.Select(u => new ID(u.Id)).ToArray();
                }
            }
        }
示例#3
0
        /// <summary>
        /// 分页获取
        /// </summary>
        /// <param name="searchRequest">查询参数</param>
        /// <returns></returns>
        public async Task <JsonResultModel <TagInfo> > GetPageList(TagSearchRequest searchRequest)
        {
            var exp = Expressionable.Create <TagInfo>()
                      .OrIF(!string.IsNullOrEmpty(searchRequest.TagName),
                            it => it.TagName.Contains(searchRequest.TagName)).ToExpression();

            return(await base.GetPageList(searchRequest, exp));
        }
        private async void btnFilter_Click(object sender, EventArgs e)
        {
            TagSearchRequest request = new TagSearchRequest
            {
                Title = txtTitle.Text
            };
            var tags = await _tagService.Post <List <TagDto> >(request, "search");

            tagsGrid.DataSource = tags;
        }
示例#5
0
        /// <summary>
        /// Performs a tag search and returns extended information about the matching tags.  Authorized
        /// using the <c>aika:managetags</c> authorization policy.
        /// </summary>
        /// <param name="filter">The tag search filter.</param>
        /// <param name="cancellationToken">The cancellation token for the request.</param>
        /// <returns>
        /// A task that will return the matching tag definitions.
        /// </returns>
        public async Task <IEnumerable <TagDefinitionExtendedDto> > FindTags(TagSearchRequest filter, CancellationToken cancellationToken)
        {
            if (filter == null)
            {
                throw new ArgumentNullException(nameof(filter));
            }

            const string url      = "api/configuration/tags/search";
            var          response = await _client.PostAsJsonAsync(url, filter, cancellationToken).ConfigureAwait(false);

            response.EnsureSuccessStatusCode();

            return(await response.Content.ReadAsJsonAsync <IEnumerable <TagDefinitionExtendedDto> >(cancellationToken).ConfigureAwait(false));
        }
示例#6
0
        public Task <IActionResult> FindTags(CancellationToken cancellationToken, string name = null, string description = null, string units = null, int pageSize = 10, int page = 1)
        {
            var model = new TagSearchRequest()
            {
                Name        = name,
                Description = description,
                Units       = units,
                PageSize    = pageSize,
                Page        = page,
                Type        = TagDefinitionFilterJoinType.And.ToString()
            };

            TryValidateModel(model);
            return(FindTags(model, cancellationToken));
        }
示例#7
0
 public async Task <JsonResultModel <TagInfo> > GetPageList([FromQuery] TagSearchRequest searchRequest)
 {
     return(await _tagBusiness.GetPageList(searchRequest));
 }
 public IActionResult Get([FromBody] TagSearchRequest request)
 {
     return(Ok(_tagService.Get(request)));
 }
示例#9
0
        public IList <TagDto> Get(TagSearchRequest request)
        {
            var tags = _context.Tags.Where(a => a.Title.Contains(request.Title)).ToList();

            return(_mapper.Map <IList <TagDto> >(tags));
        }