Exemplo n.º 1
0
        public async Task <List <CategoryViewModel> > GetCategories()
        {
            var client   = new CategoryService.CategoryServiceClient(_grpcChannel);
            var response = await client.GetCategoriesAsync(new Empty());

            return(response.Categories.Select(category => new CategoryViewModel()
            {
                Id = category.Id,
                Name = category.Name,
                Slug = category.Slug
            }).ToList());
        }
Exemplo n.º 2
0
        public async Task <IList <Category> > GetByIdAsync(IList <string> ids)
        {
            return(await _grpcCallerService.CallService(_categoryServiceProvider.GrpcEndpoint, async (grpcChannel) =>
            {
                var client = new CategoryService.CategoryServiceClient(grpcChannel);
                var response = await client.GetByIdsAsync(new GetByIdsRequest
                {
                    Ids = { ids }
                });

                return response.Categories;
            }));
        }
Exemplo n.º 3
0
        public async Task <IList <Category> > GetByHandleAsync(IList <string> handles,
                                                               string languageCode)
        {
            return(await _grpcCallerService.CallService(_categoryServiceProvider.GrpcEndpoint, async (grpcChannel) =>
            {
                var client = new CategoryService.CategoryServiceClient(grpcChannel);
                var response = await client.GetByHandlesAsync(new GetByHandlesRequest
                {
                    Handles = { handles }
                });

                // Filter out matches in other languages
                return response.Categories
                .Where(x => x.Handles
                       .Any(ls => ls.LanguageCode == languageCode && handles.Contains(ls.Value)))
                .ToList();
            }));
        }
Exemplo n.º 4
0
        public async Task <SearchResult <Category> > GetBySearchAsync(string searchTerm,
                                                                      string languageCode,
                                                                      string parentId,
                                                                      string pageCursor,
                                                                      int pageSize,
                                                                      CategorySortKey sortKey,
                                                                      bool reverse)
        {
            return(await _grpcCallerService.CallService(_categoryServiceProvider.GrpcEndpoint, async (grpcChannel) =>
            {
                var client = new CategoryService.CategoryServiceClient(grpcChannel);
                var response = await client.GetBySearchAsync(new GetBySearchRequest
                {
                    SearchTerm = searchTerm,
                    LanguageCode = languageCode,
                    ParentId = parentId,
                    PageCursor = pageCursor,
                    PageSize = pageSize,
                    SortKey = sortKey,
                    Reverse = reverse,
                });

                var results = response
                              .Results
                              .Select(x => new CursorNodeResult <Category>
                {
                    Cursor = x.Cursor,
                    Node = x.Node
                })
                              .ToList();

                return new SearchResult <Category>
                {
                    HasNextPage = response.HasNextPage,
                    HasPreviousPage = response.HasPreviousPage,
                    StartCursor = response.StartCursor,
                    EndCursor = response.EndCursor,
                    TotalResults = response.TotalResults,
                    Results = results,
                };
            }));
        }