Exemplo n.º 1
0
        public ProductFindResponse FindById(ProductFindRequest request)
        {
            var response         = new ProductFindResponse();
            var validationErrors = _validation.FindRequestValidation.Validate(request);
            var dbErrors         = new List <DatabaseErrors>();

            if (validationErrors.Count != 0)
            {
                response.ValidationErrors = validationErrors;
            }
            else
            {
                try
                {
                    response.FoundProduct = _productRepository.ReadSingle(request);
                }
                catch (SqlException)
                {
                    dbErrors.Add(DatabaseErrors.DB_CONNECTION_FAILED);
                }
                catch (NullReferenceException)
                {
                    validationErrors.Add(ProductValidationErrors.Product_Not_Found);
                }
                response.DBErrors = dbErrors;
            }

            return(response);
        }
Exemplo n.º 2
0
        public ProductFindResponse Find(ProductFindRequest request)
        {
            var factory = new ExternalCommandFactory();
            var command = factory.Create <ProductFindCommand>();

            return(command.Execute(request));
        }
Exemplo n.º 3
0
        public void ShouldGetProductById()
        {
            _createRequestValidation = new CreateRequestValidation();
            _deleteRequestValidation = new DeleteRequestValidation();
            _findRequestValidation   = new FindRequestValidation();
            _updateRequestValidation = new UpdateRequestValidation();

            _validation = new ProductValidation(_createRequestValidation, _findRequestValidation, _updateRequestValidation, _deleteRequestValidation);

            ProductFindRequest request = new ProductFindRequest();

            request.Id = 1;

            var mock = new Mock <IProduct>();

            mock.Setup(x => x.ReadSingle(request))
            .Returns(new Product
            {
                ProductId   = 1,
                Name        = "Milk",
                Category    = Category.Milk,
                Price       = 50,
                Discount    = 20,
                Description = "Milk from latvia"
            });

            _victim = new ProductService(mock.Object, _validation);
            Product actual = _victim.FindById(request).FoundProduct;

            string expected = "Milk";

            Assert.Equal(expected, actual.Name);
        }
Exemplo n.º 4
0
        public async Task <ProductFindResponse> FindProductAsync(ProductFindRequest requestModel)
        {
            RestRequest request = new RestRequest("query", Method.POST, DataFormat.Json);

            request.AddJsonBody(JsonConvert.SerializeObject(requestModel));

            return(await GetResponseAsync <ProductFindResponse>(request));
        }
        private long _findProductInDB(long id)
        {
            var productFindRequest = new ProductFindRequest
            {
                ProductId = id
            };

            return(_productService.FindById(productFindRequest).FoundProduct.Id);
        }
 public Product ReadSingle(ProductFindRequest request)
 {
     using (var _context = new ShoppingListContext())
     {
         return(_context.Product
                .Include(c => c.Category)
                .Include(f => f.FileStorage)
                .FirstOrDefault(p => p.Id == request.ProductId));
     }
 }
Exemplo n.º 7
0
        public virtual IHttpActionResult Find([FromUri] ProductFindRequest request)
        {
            var result = _productService.Find(request.Id);

            if (result == null)
            {
                return(Fail("抱歉,没查到数据"));
            }
            return(Succeed(new ProductFindResponse
            {
                Id = result.Id
            }));
        }
        public AddUpdateCartResponse AddToCart(AddUpdateCartRequest request)
        {
            var productFindRequest = new ProductFindRequest
            {
                ProductId = request.ProductId
            };

            var cartFindRequest = new CartFindRequest
            {
                CartId = request.CartId
            };

            var product = _productService.FindById(productFindRequest).FoundProduct;
            var cart    = FindCartById(cartFindRequest).Cart;

            var validationErrors = _cartValidation.AddProductToCartValidation.Validate(request);
            var DBErrors         = new List <DatabaseErrors>();

            var response = new AddUpdateCartResponse();

            if (validationErrors.Count != 0)
            {
                response.ValidationErrors = validationErrors;
            }
            else
            {
                try
                {
                    response.HasAdded = _cartRepository.ToCart(product, cart, request.Quantity);
                }
                catch (UniqueKeyViolationException)
                {
                    DBErrors.Add(DatabaseErrors.DB_DUPLICATE_ENTRY);
                }
                response.DBErrors = DBErrors;
            }
            return(response);
        }
        public HttpResponseMessage Find([FromUri] ProductFindRequest request)
        {
            var response = _externalCommandService.Execute(request);

            return(Request.CreateResponse(response));
        }