示例#1
0
        /// <summary>
        /// Gets the product by id.--by Will
        /// </summary>
        /// <param name="id">The id.</param>
        /// <returns></returns>
        public ProductBE GetProductById(int id)
        {
            GetProductByIdRequest request = new GetProductByIdRequest();

            request.Id = id;
            GetProductByIdResponse response = MyChannelFactory.CreateChannel().GetProductById(request);

            if (response.IsFailed)
            {
                ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
                log.Error("error", new Exception(response.Message));
                log.Fatal("fatal", new Exception(response.Message));
                throw (new Exception(response.Message));
            }
            return(response.Product);
        }
示例#2
0
        /// <summary>
        /// Type 1: Unary Call
        /// </summary>
        /// <param name="request"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public override Task <GetPrductByIdResponse> GetProductById(GetProductByIdRequest request, ServerCallContext context)
        {
            var product  = ProductList.SingleOrDefault(o => o.ProductId == request.ProductId);
            var response = new GetPrductByIdResponse();

            if (product != null)
            {
                context.Status   = new Status(StatusCode.OK, "Product was found");
                response.Product = product;
            }
            else
            {
                context.Status = new Status(StatusCode.NotFound, "Product was not found");
            }

            return(Task.FromResult(response));
        }
示例#3
0
        public async Task <ResponseContract <ProdutoViewModel> > GetByIdAsnc(GetProductByIdRequest request)
        {
            var response = new ResponseContract <ProdutoViewModel>();

            var result = await _produtoRepository.FindAsync(request.Id);

            if (result == null)
            {
                return(response);
            }

            var vm = _mapper.Map <ProdutoViewModel>(result);

            response.SetContent(vm);
            response.SetValid();

            return(response);
        }
示例#4
0
        public async Task <GetProductByIdResponse> HandleAsync(GetProductByIdRequest request, CancellationToken cancellationToken)
        {
            using (var context = dbContextFactory.CreateDbContext())
            {
                var product = await context.Products.FindAsync(new[] { request.ProductId }, cancellationToken).ConfigureAwait(false);

                if (product == null)
                {
                    return(null);
                }

                return(new GetProductByIdResponse
                {
                    Name = product.Name,
                    ProductId = product.Id,
                    PointsCost = product.PointsCost
                });
            }
        }
示例#5
0
        /// <summary>
        /// Gets the product by id.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public GetProductByIdResponse GetProductById(GetProductByIdRequest request)
        {
            GetProductByIdResponse response = new GetProductByIdResponse();
            ProductService         service  = new ProductService();

            try
            {
                response.Product = service.GetById(request.Id);
                if (response.Product == null)
                {
                    response.IsFailed = true;
                    response.Message  = "We do not have Product";
                }
            }
            catch (Exception ex)
            {
                response.IsFailed = true;
                response.Message  = ex.Message;
            }

            return(response);
        }
示例#6
0
        public async Task <ActionResult <ProductModel> > GetProductById(GetProductByIdRequest request)
        {
            var product = await _productService.GetProductById(request.Id);

            return(Ok(product));
        }
示例#7
0
        public async Task <ActionResult <ProductModel> > GetProductById(GetProductByIdRequest request)
        {
            var commandResult = await _mediator.Send(request);

            return(Ok(commandResult));
        }