예제 #1
0
        public async Task <OperationResult <ListResponse <SearchResult> > > GetCategories(OffsetLimitModel request, CancellationToken token)
        {
            if (!EnableRead)
            {
                return(null);
            }

            var results = Validate(request);

            if (results.Any())
            {
                return(new OperationResult <ListResponse <SearchResult> >(new ValidationError(string.Join(Environment.NewLine, results.Select(i => i.ErrorMessage)))));
            }

            var parameters = new Dictionary <string, object>();

            AddOffsetLimitParameters(parameters, request.Offset, request.Limit);
            var endpoint = "categories/top";
            var result   = await Gateway.Get <ListResponse <SearchResult> >(GatewayVersion.V1, endpoint, parameters, token);

            if (result.IsSuccess)
            {
                foreach (var category in result.Result.Results)
                {
                    category.Name = Transliteration.ToRus(category.Name);
                }
            }
            return(result);
        }
예제 #2
0
        public async Task <OperationResult <ListResponse <SearchResult> > > GetCategories(OffsetLimitModel request, CancellationToken token)
        {
            if (!EnableRead)
            {
                return(null);
            }

            var results = Validate(request);

            if (results != null)
            {
                return(new OperationResult <ListResponse <SearchResult> >(results));
            }

            var parameters = new Dictionary <string, object>();

            AddOffsetLimitParameters(parameters, request.Offset, request.Limit);
            var endpoint = $"{BaseUrl}/{GatewayVersion.V1}/categories/top";
            var result   = await HttpClient.Get <ListResponse <SearchResult> >(endpoint, parameters, token);

            if (result.IsSuccess)
            {
                foreach (var category in result.Result.Results)
                {
                    category.Name = Transliteration.ToRus(category.Name);
                }
            }
            return(result);
        }
예제 #3
0
 public static string TagToRu(this string text)
 {
     if (string.IsNullOrWhiteSpace(text))
     {
         return(text);
     }
     return(Transliteration.ToRus(text));
 }
예제 #4
0
        public async Task <OperationResult <ListResponse <SearchResult> > > SearchCategories(SearchWithQueryModel model, CancellationToken token)
        {
            if (!EnableRead)
            {
                return(null);
            }

            var results = Validate(model);

            if (results.Any())
            {
                return(new OperationResult <ListResponse <SearchResult> >(new ValidationError(string.Join(Environment.NewLine, results.Select(i => i.ErrorMessage)))));
            }

            var query = Transliteration.ToEng(model.Query);

            if (query != model.Query)
            {
                query = $"ru--{query}";
            }
            model.Query = query;

            var parameters = new Dictionary <string, object>();

            AddOffsetLimitParameters(parameters, model.Offset, model.Limit);
            parameters.Add("query", model.Query);
            var endpoint = "categories/search";
            var result   = await Gateway.Get <ListResponse <SearchResult> >(GatewayVersion.V1, endpoint, parameters, token);

            if (result.IsSuccess)
            {
                foreach (var categories in result.Result.Results)
                {
                    categories.Name = Transliteration.ToRus(categories.Name);
                }
            }

            return(result);
        }
예제 #5
0
        public async Task <OperationResult <ListResponse <SearchResult> > > SearchCategories(SearchWithQueryModel model, CancellationToken token)
        {
            if (!EnableRead)
            {
                return(null);
            }

            var results = Validate(model);

            if (results != null)
            {
                return(new OperationResult <ListResponse <SearchResult> >(results));
            }

            var query = Transliteration.ToEng(model.Query);

            if (query != model.Query)
            {
                query = $"ru--{query}";
            }
            model.Query = query;

            var parameters = new Dictionary <string, object>();

            AddOffsetLimitParameters(parameters, model.Offset, model.Limit);
            parameters.Add("query", model.Query);
            var endpoint = $"{BaseUrl}/{GatewayVersion.V1P1}/categories/search";
            var result   = await HttpClient.Get <ListResponse <SearchResult> >(endpoint, parameters, token);

            if (result.IsSuccess)
            {
                foreach (var categories in result.Result.Results)
                {
                    categories.Name = Transliteration.ToRus(categories.Name);
                }
            }

            return(result);
        }
예제 #6
0
        public void TranslateToRusTest(string value, string exp)
        {
            var rez = Transliteration.ToRus(value);

            Assert.IsTrue(rez.Equals(exp), $"{rez} != {exp} ({exp} > {value})");
        }