示例#1
0
 public OrderCreateRequest()
 {
     ProvinceID = null;
     DistrictID = null;
     CommuneID  = null;
     Cart       = new CartCreateRequest();
 }
        public void ShouldReturnErrorCodes(long cartId, long userId, CartValidationErrors expectedError)
        {
            AddProductToCartValidation      AddProductToCartValidation      = new AddProductToCartValidation();
            CartCreateRequestValidation     CartCreateRequestValidation     = new CartCreateRequestValidation();
            CartFindRequestValidation       CartFindRequestValidation       = new CartFindRequestValidation();
            CartRemoveRequestValidation     CartRemoveRequestValidation     = new CartRemoveRequestValidation();
            RemoveFromCartRequestValidation RemoveFromCartRequestValidation = new RemoveFromCartRequestValidation();
            CartClearRequestValidation      CartClearRequestValidation      = new CartClearRequestValidation();

            CartValidation _validation = new CartValidation(AddProductToCartValidation, CartCreateRequestValidation,
                                                            CartFindRequestValidation, CartRemoveRequestValidation, RemoveFromCartRequestValidation, CartClearRequestValidation);

            var request = new CartCreateRequest
            {
                UserId = userId,
                CartId = cartId
            };

            var listErrors = _validation.CartCreateRequestValidation.Validate(request);

            foreach (var error in listErrors)
            {
                Assert.Equal(expectedError, error);
            }
        }
        public CartCreateResponse CreateCart(CartCreateRequest request)
        {
            var response         = new CartCreateResponse();
            var validationErrors = _cartValidation.CartCreateRequestValidation.Validate(request);
            var dbErrors         = new List <DatabaseErrors>();

            if (validationErrors.Count != 0)
            {
                response.ValidationErrors = validationErrors;
            }
            else
            {
                try
                {
                    var cart = new Cart
                    {
                        Id     = request.CartId,
                        UserId = request.UserId
                    };

                    response.Cart = _cartRepository.Create(cart);
                }
                catch (SqlException)
                {
                    dbErrors.Add(DatabaseErrors.DB_CONNECTION_FAILED);
                }
                response.DBErrors = dbErrors;
            }
            return(response);
        }
        private CartCreateRequest request()
        {
            CartCreateRequest request = new CartCreateRequest
            {
                CartId = 1,
                UserId = 1
            };

            return(request);
        }
示例#5
0
        public async Task <IActionResult> Create(CartCreateRequest request)
        {
            if (ModelState.IsValid == false)
            {
                return(BadRequest(ModelState));
            }
            var result = await _cartService.Create(request);

            if (result.IsSuccessed == false)
            {
                return(BadRequest(result));
            }
            return(Ok(result));
        }
示例#6
0
        public async Task <ApiResult <string> > Create(CartCreateRequest request)
        {
            var sections = _httpContextAccessor.HttpContext.Session.GetString("Token");

            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", sections);
            var json        = JsonConvert.SerializeObject(request);
            var httpContent = new StringContent(json, Encoding.UTF8, "application/json");
            var response    = await _client.PostAsync($"/api/carts", httpContent);

            var result = await response.Content.ReadAsStringAsync();

            if (response.IsSuccessStatusCode)
            {
                return(JsonConvert.DeserializeObject <ApiResultSuccess <string> >(result));
            }
            return(JsonConvert.DeserializeObject <ApiResultErrors <string> >(result));
        }
示例#7
0
        public async Task <IList <CartVM> > AddProductToCart(int productId, int orderQty)
        {
            var accessToken = await _httpContextAccessor.HttpContext.GetTokenAsync("access_token");

            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

            var CartRequest = new CartCreateRequest
            {
                ProductId = productId,
                OrderQty  = orderQty
            };
            var response = await _client.PostAsJsonAsync($"{_config["Host"]}/api/Cart", CartRequest);

            response.EnsureSuccessStatusCode();

            return(await response.Content.ReadAsAsync <IList <CartVM> >());
        }
        public async Task <IActionResult> CreateCartItem(CartCreateRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(StatusCode(400));
            }

            var identityClaimNum = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);
            var dto = _mapper.Map <CartCreateDTO>(request);

            dto.OwnerId = identityClaimNum;

            if (await _manager.CreateCartItem(dto))
            {
                return(StatusCode(201));
            }

            throw new Exception();
        }
        public async Task <ApiResult <bool> > Create(CartCreateRequest request)
        {
            var cart = new Cart
            {
                Created_At = DateTime.Now,
                UserId     = request.UserId,
                Price      = request.Price,
            };

            foreach (var item in request.Items)
            {
                var cartProduct = new CartProduct
                {
                    ProductID = item.Product.Id,
                    Quantity  = item.Quantity
                };
                cart.CartProducts.Add(cartProduct);
            }
            _context.Carts.Add(cart);
            return(await SaveChangeService.SaveChangeAsyncNotImage(_context));
        }
示例#10
0
        public async Task <ActionResult <ProductVm> > PostCart(CartCreateRequest cartCreateRequest)
        {
            var Product = await _context.Products.FindAsync(cartCreateRequest.ProductId);

            if (Product == null || _userUtility.GetUserId() == null)
            {
                return(NotFound("userid"));
            }

            var Carts = await _context.Carts
                        .Where(c => c.UserID == _userUtility.GetUserId() && c.ProductId == cartCreateRequest.ProductId)
                        .ToListAsync();

            if (Carts.Count != 0)
            {
                Carts[0].ProductQty += cartCreateRequest.OrderQty;

                await _context.SaveChangesAsync();

                return(NoContent());
            }



            var cart = new Cart
            {
                UserID     = _userUtility.GetUserId(),
                ProductId  = cartCreateRequest.ProductId,
                ProductQty = cartCreateRequest.OrderQty
            };

            _context.Carts.Add(cart);
            await _context.SaveChangesAsync();

            return(NoContent());
        }