public override async Task <CatalogItemResponse> GetItemById(CatalogItemRequest request, ServerCallContext context) { try { Console.WriteLine("CatalogService GetItemById: " + request.ToString()); var product = await _productRepository.GetAsync(new Guid(request.Id)); if (product == null) { return(new CatalogItemResponse()); } return(new CatalogItemResponse() { Id = product.Id.ToString(), Description = product.Description, Image = product.Image, Name = product.Name, Price = product.Price, }); } catch (System.Exception) { throw; } }
public async Task <CatalogItem> GetCatalogItemAsync(int id) { var request = new CatalogItemRequest { Id = id }; var response = await _client.GetItemByIdAsync(request); return(MapToCatalogItemResponse(response)); }
public async Task <IActionResult> Get(Guid id) { using var channel = GrpcChannel.ForAddress(Environment.GetEnvironmentVariable("catalogurl")); var client = new Catalog.CatalogClient(channel); var request = new CatalogItemRequest { Id = id.ToString() }; var reply = await client.GetItemByIdAsync(request); return(Accepted($"products/{reply}")); }
public async Task <CatalogItem> GetCatalogItemAsync(int id) { var request = new CatalogItemRequest { Id = id }; _logger.LogInformation("grpc request {@request}", request); var response = await _client.GetItemByIdAsync(request); _logger.LogInformation("grpc response {@response}", response); return(MapToCatalogItemResponse(response)); }
public async Task <CatalogItem> GetCatalogItemAsync(int id) { return(await GrpcCallerService.CallService(_urls.Catalog + UrlsConfig.CatalogOperations.GetItemById(id), async channel => { var client = new CatalogClient(channel); var request = new CatalogItemRequest { Id = id }; var response = await client.GetItemByIdAsync(request); return MapToCatalogItemResponse(response); })); }
public async Task <CatalogItem> GetCatalogItemAsync(int id) { return(await GrpcCallerService.CallService(_urls.GrpcCatalog, async channel => { var client = new CatalogClient(channel); var request = new CatalogItemRequest { Id = id }; _logger.LogInformation("grpc client created, request = {@request}", request); var response = await client.GetItemByIdAsync(request); _logger.LogInformation("grpc response {@response}", response); return MapToCatalogItemResponse(response); })); }
public override Task <CatalogItemResponse> GetInfoBy(CatalogItemRequest request, ServerCallContext context) { var random = new Random(); var response = new CatalogItemResponse { Id = request.Id, Description = "This is description", Title = "Title", Price = random.Next() }; return(Task.FromResult(response)); }
public async Task <CatalogInfo> GetInfoByAsync(long id) { return(await CallService(_options.Value.Catalog, async channel => { var client = new Catalog.CatalogClient(channel); var request = new CatalogItemRequest { Id = id }; var response = await client.GetInfoByAsync(request); return new CatalogInfo { Title = response.Title }; })); }
public override async Task <CatalogItemResponse> GetItemById(CatalogItemRequest request, ServerCallContext context) { _logger.LogInformation("Begin grpc call CatalogService.GetItemById for product id {Id}", request.Id); if (request.Id <= 0) { context.Status = new Status(StatusCode.FailedPrecondition, $"Id must be > 0 (received {request.Id})"); return(null); } var item = await _catalogContext.CatalogItems.SingleOrDefaultAsync(ci => ci.Id == request.Id); var baseUri = _settings.PicBaseUrl; var azureStorageEnabled = _settings.AzureStorageEnabled; item.FillProductUrl(baseUri, azureStorageEnabled: azureStorageEnabled); if (item != null) { return(new CatalogItemResponse() { AvailableStock = item.AvailableStock, Description = item.Description, Id = item.Id, MaxStockThreshold = item.MaxStockThreshold, Name = item.Name, OnReorder = item.OnReorder, PictureFileName = item.PictureFileName, PictureUri = item.PictureUri, Price = (double)item.Price, RestockThreshold = item.RestockThreshold }); } context.Status = new Status(StatusCode.NotFound, $"Product with id {request.Id} do not exist"); return(null); }