public async Task <IActionResult> Get(CatalogItemsRequest request)
        {
            using var channel = GrpcChannel.ForAddress("https://localhost:5005");
            var client = new Catalog.CatalogClient(channel);
            var reply  = await client.GetItemsByIdsAsync(request);

            return(Ok(reply));
        }
        public async Task <IEnumerable <CatalogItem> > GetCatalogItemsAsync(IEnumerable <int> ids)
        {
            var request = new CatalogItemsRequest {
                Ids = string.Join(",", ids), PageIndex = 1, PageSize = 10
            };
            var response = await _client.GetItemsByIdsAsync(request);

            return(response.Data.Select(MapToCatalogItemResponse));
        }
        public async Task <IEnumerable <CatalogItem> > GetCatalogItemsAsync(IEnumerable <int> ids)
        {
            var request = new CatalogItemsRequest {
                Ids = string.Join(",", ids), PageIndex = 1, PageSize = 10
            };

            _logger.LogInformation("grpc request {@request}", request);
            var response = await _client.GetItemsByIdsAsync(request);

            _logger.LogInformation("grpc response {@response}", response);
            return(response.Data.Select(this.MapToCatalogItemResponse));
        }
Esempio n. 4
0
 public async Task <IEnumerable <CatalogItem> > GetCatalogItemsAsync(IEnumerable <int> ids)
 {
     return(await GrpcCallerService.CallService(_urls.GrpcCatalog, async channel =>
     {
         var client = new CatalogClient(channel);
         var request = new CatalogItemsRequest {
             Ids = string.Join(",", ids), PageIndex = 1, PageSize = 10
         };
         var response = await client.GetItemsByIdsAsync(request);
         return response.Data.Select(this.MapToCatalogItemResponse);
     }));
 }
Esempio n. 5
0
        public override async Task <PaginatedItemsResponse> GetItemsByIds(CatalogItemsRequest request, ServerCallContext context)
        {
            if (!string.IsNullOrEmpty(request.Ids))
            {
                var items = await GetItemsByIdsAsync(request.Ids);

                if (!items.Any())
                {
                    context.Status = new Status(StatusCode.NotFound, $"ids value invalid. Must be comma-separated list of numbers");
                }
                context.Status = new Status(StatusCode.OK, string.Empty);
                return(this.MapToResponse(items));
            }

            var totalItems = await _catalogContext.CatalogItems
                             .LongCountAsync();

            var itemsOnPage = await _catalogContext.CatalogItems
                              .OrderBy(c => c.Name)
                              .Skip(request.PageSize * request.PageIndex)
                              .Take(request.PageSize)
                              .ToListAsync();

            /* The "awesome" fix for testing Devspaces */

            /*
             * foreach (var pr in itemsOnPage) {
             *  pr.Name = "Awesome " + pr.Name;
             * }
             *
             */

            itemsOnPage = ChangeUriPlaceholder(itemsOnPage);

            var model = this.MapToResponse(itemsOnPage, totalItems, request.PageIndex, request.PageSize);

            context.Status = new Status(StatusCode.OK, string.Empty);

            return(model);
        }
 public CatalogItemsByCategoryRequest(string category, long scheduledThemeChallengeId, string cursor = "")
 {
     CacheId = CatalogItemsRequest.GetPrefixedCacheId(category, scheduledThemeChallengeId);
     Service.Get <EventDispatcher>().AddListener <CatalogServiceEvents.CatalogItemsByCategoryRetrievedEvent>(onItemsByCategory);
     Service.Get <INetworkServicesManager>().CatalogService.GetCatalogItemsByCategory(category, scheduledThemeChallengeId, cursor);
 }
Esempio n. 7
0
 public CatalogItemsByPopularRequest(long scheduledThemeChallengeId, string cursor = "")
 {
     CacheId = CatalogItemsRequest.GetPrefixedCacheId("Popular", scheduledThemeChallengeId);
     Service.Get <EventDispatcher>().AddListener <CatalogServiceEvents.CatalogItemsByPopularityRetrievedEvent>(onItems);
     Service.Get <INetworkServicesManager>().CatalogService.GetCatalogItemsByPopularity(scheduledThemeChallengeId, cursor);
 }