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