Example #1
0
        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));
        }
Example #5
0
 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);
     }));
 }
Example #7
0
        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));
        }
Example #8
0
        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
                };
            }));
        }
Example #9
0
        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);
        }