Exemplo n.º 1
0
        public async Task GetCategoriesTest(KnownChains apiName)
        {
            var request = new OffsetLimitModel();
            var result  = await Gateway[apiName].GetCategories(request, CancellationToken.None);

            Assert.IsTrue(result.IsSuccess, result.Error?.Message);
        }
Exemplo n.º 2
0
        private async Task <ErrorBase> GetTopTags(CancellationToken ct)
        {
            var request = new OffsetLimitModel()
            {
                Offset = OffsetUrl,
                Limit  = ItemsLimit
            };

            var response = await Api.GetCategories(request, ct);

            if (response.IsSuccess)
            {
                var tags = response.Result.Results;
                if (tags.Count > 0)
                {
                    lock (Items)
                        Items.AddRange(Items.Count == 0 ? tags : tags.Skip(1));

                    OffsetUrl = tags.Last().Name;
                }

                if (tags.Count < Math.Min(ServerMaxCount, ItemsLimit))
                {
                    IsLastReaded = true;
                }
                NotifySourceChanged(nameof(TryGetTopTags), true);
            }
            return(response.Error);
        }
        private void GetCategoriesTest(StringBuilder sb, int num)
        {
            sb.Append($"{num}) GetCategoriesTest : ");
            StepFinished?.Invoke(sb.ToString());

            var limit = 3;

            var request = new OffsetLimitModel {
                Limit = limit
            };
            var response = _api.GetCategories(request, CancellationToken.None).Result;

            if (IsError1(sb, limit, response, response.Result.Results.Count))
            {
                return;
            }

            request.Offset = response.Result.Results.Last().Name;
            response       = _api.GetCategories(request, CancellationToken.None).Result;

            if (IsError2(sb, limit, response, request.Offset))
            {
                return;
            }

            sb.AppendLine("pass.");
        }
        public async Task Categories(KnownChains apiName)
        {
            // Arrange
            var request = new OffsetLimitModel();

            // Act
            var response = await Api[apiName].GetCategories(request, CancellationToken.None);

            // Assert
            AssertResult(response);
            Assert.That(response.Result.Results.Any());
            Assert.That(response.Result.Results, Is.Not.Empty);
            Assert.That(response.Result.Results.First().Name, Is.Not.Empty);
        }
        public async Task Categories_Offset_Limit(KnownChains apiName)
        {
            // Arrange
            const int limit   = 5;
            var       request = new OffsetLimitModel()
            {
                Offset = "food",
                Limit  = limit
            };

            // Act
            var response = await Api[apiName].GetCategories(request, CancellationToken.None);

            // Assert
            AssertResult(response);
            Assert.That(response.Result.Results.Any());
            Assert.That(response.Result.Results.Count, Is.EqualTo(limit));
            Assert.That(response.Result.Results, Is.Not.Empty);
            Assert.That(response.Result.Results.First().Name, Is.EqualTo("food"));
        }
Exemplo n.º 6
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);
        }
Exemplo n.º 7
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);
        }