public async Task <IList <ContentPage> > GetByIdAsync(IList <string> ids) { return(await _grpcCallerService.CallService(_contentPageServiceProvider.GrpcEndpoint, async (grpcChannel) => { var client = new ContentPageService.ContentPageServiceClient(grpcChannel); var response = await client.GetByIdsAsync(new GetByIdsRequest { Ids = { ids } }); return response.ContentPages; })); }
public async Task <IList <ContentPage> > GetByHandleAsync(IList <string> handles, string languageCode) { return(await _grpcCallerService.CallService(_contentPageServiceProvider.GrpcEndpoint, async (grpcChannel) => { var client = new ContentPageService.ContentPageServiceClient(grpcChannel); var response = await client.GetByHandlesAsync(new GetByHandlesRequest { Handles = { handles } }); // Filter out matches in other languages return response.ContentPages .Where(x => x.Handles .Any(ls => ls.LanguageCode == languageCode && handles.Contains(ls.Value))) .ToList(); })); }
public async Task <SearchResult <ContentPage> > GetBySearchAsync(string searchTerm, string languageCode, string parentId, string pageCursor, int pageSize, ContentPageSortKey sortKey, bool reverse) { return(await _grpcCallerService.CallService(_contentPageServiceProvider.GrpcEndpoint, async (grpcChannel) => { var client = new ContentPageService.ContentPageServiceClient(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 <ContentPage> { Cursor = x.Cursor, Node = x.Node }) .ToList(); return new SearchResult <ContentPage> { HasNextPage = response.HasNextPage, HasPreviousPage = response.HasPreviousPage, StartCursor = response.StartCursor, EndCursor = response.EndCursor, TotalResults = response.TotalResults, Results = results, }; })); }