Exemplo n.º 1
0
        public async Task <IActionResult> UpdateAmountCartItemEqualsToDB()
        {
            string message          = "";
            var    headerValues     = Request.Headers["Authorization"];
            string userId           = Authenticate.DecryptToken(headerValues.ToString());
            var    shoppingCartInDB = await _shoppingCartService.GetByUserIdAsync(userId);

            foreach (var itemInDB in shoppingCartInDB.ItemInCart)
            {
                var book = await _bookService.GetAsync(itemInDB.BookId);

                if (book.Amount < itemInDB.Amount)
                {
                    message = message + string.Format("Sản phẩm {0} hiện tại chỉ còn {1} sản phẩm. Vui lòng cập nhật lại số lượng", itemInDB.Name, book.Amount.ToString());
                }
            }
            if (message != "")
            {
                return(BadRequest(message));
            }
            else
            {
                return(Ok("Pass"));
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> UpdateAvatarUser([FromForm] UpdateAvatarModel updatedUser)
        {
            var    headerValues = Request.Headers["Authorization"];
            string userId       = Authenticate.DecryptToken(headerValues.ToString());
            var    user         = await _userService.GetAsync(userId);

            updatedUser.Id = userId;


            await _userService.UpdateAvatarAsync(updatedUser);

            ///Return updated user to update state in react
            var returnedUser = (await _userService.GetAsync(userId)).Adapt <UserViewModel>();
            var provinces    = await _provinceService.GetAllAsync();

            var wards = await _wardService.GetByDistrictIdAsync(returnedUser.DistrictId);

            var districts = await _districtService.GetByProvinceIdAsync(returnedUser.ProvinceId);

            if (returnedUser.ProvinceId != null)
            {
                returnedUser.ProvinceName = provinces.Where(x => x.Id == returnedUser.ProvinceId).FirstOrDefault().Name;
                returnedUser.DistrictName = districts.Where(x => x.Id == returnedUser.DistrictId).FirstOrDefault().Name;
                returnedUser.WardName     = wards.Where(x => x.Id == returnedUser.WardId).FirstOrDefault().Name;
            }
            returnedUser.ImgUrl   = returnedUser.ImgUrl;
            returnedUser.BirthDay = Convert.ToDateTime(returnedUser.BirthDay).ToLocalTime().ToString("yyyy-MM-dd");
            return(Ok(returnedUser));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> IncreaseOrDecreaseItemAmount(
            string bookId, int amount)
        {
            var    headerValues = Request.Headers["Authorization"];
            string userId       = Authenticate.DecryptToken(headerValues.ToString());

            return(Ok((await _shoppingCartService.UpdateAmountAsync(userId, bookId, amount)).Adapt <List <ItemInCartViewModel> >()));
        }
Exemplo n.º 4
0
        public async Task <ActionResult> DeleteItemInCart(string bookId)
        {
            var    headerValues = Request.Headers["Authorization"];
            string userId       = Authenticate.DecryptToken(headerValues.ToString());
            await _shoppingCartService.RemoveCartItemAsync(userId, bookId);

            return(Ok("Delete successfull"));
        }
Exemplo n.º 5
0
        public async Task <ActionResult <EntityList <CommentViewModel> > > GetComents([FromQuery] int page, [FromQuery] int pageSize)
        {
            var    headerValues = Request.Headers["Authorization"];
            string userId       = Authenticate.DecryptToken(headerValues.ToString());
            var    comments     = await _commentService.GetAsyncManage(userId, page, pageSize);

            return(Ok(comments));
        }
Exemplo n.º 6
0
        public async Task <ActionResult <ShoppingCart> > Get()
        {
            var    headerValues = Request.Headers["Authorization"];
            string userId       = Authenticate.DecryptToken(headerValues.ToString());
            var    shoppingCart = await _shoppingCartService.GetByUserIdAsync(userId);

            if (shoppingCart == null)
            {
                return(BadRequest("shoppingCart not found"));
            }
            return(Ok(shoppingCart.ItemInCart.Adapt <List <ItemInCartViewModel> >()));
        }
Exemplo n.º 7
0
        public async Task <IActionResult> AddToCart(
            [FromBody] JObject shoppingCart)
        {
            var    headerValues     = Request.Headers["Authorization"];
            string userId           = Authenticate.DecryptToken(headerValues.ToString());
            var    shoppingCartInDB = await _shoppingCartService.GetByUserIdAsync(userId);

            if (shoppingCartInDB.ItemInCart == null)
            {
                shoppingCartInDB.ItemInCart = new List <ItemInCart>();
            }
            bool isExisted = false;

            if (shoppingCart["shoppingCartData"] != null)
            {
                var shoppingCartInBody = shoppingCart["shoppingCartData"];


                List <ItemInCart> itemInCarts = shoppingCartInBody
                                                .Select(sc =>
                                                        new ItemInCart()
                {
                    BookId     = sc["bookId"].ToString(),
                    Amount     = int.Parse(sc["amount"].ToString()),
                    Name       = sc["name"].ToString(),
                    Price      = Convert.ToDecimal(sc["price"].ToString()),
                    CoverPrice = Convert.ToDecimal(sc["coverPrice"].ToString()),
                    AuthorName = sc["authorName"].ToString(),
                    ImageSrc   = sc["imageSrc"].ToString(),
                }
                                                        ).ToList();
                foreach (var itemInBody in itemInCarts)
                {
                    foreach (var itemInDB in shoppingCartInDB.ItemInCart)
                    {
                        if (itemInDB.BookId == itemInBody.BookId)
                        {
                            itemInDB.Amount = itemInDB.Amount + itemInBody.Amount;
                            isExisted       = true;
                        }
                    }
                    if (!isExisted)
                    {
                        shoppingCartInDB.ItemInCart.Add(itemInBody);
                    }
                    isExisted = false;
                }
            }
            await _shoppingCartService.UpdateAsync(userId, shoppingCartInDB);

            return(Ok(shoppingCartInDB));
        }
Exemplo n.º 8
0
        public async Task <ActionResult <EntityList <OrdersViewModel> > > Get([FromQuery] int page, [FromQuery] int pageSize)
        {
            var    headerValues = Request.Headers["Authorization"];
            string userId       = Authenticate.DecryptToken(headerValues.ToString());
            var    orders       = await _orderService.GetAsync(userId, page, pageSize);

            foreach (var order in orders.Entities)
            {
                //Payment with momo
                if (order.PaymentType == 2)
                {
                    order.TotalMoney = 0.ToString();
                }
            }
            return(Ok(orders));
        }
Exemplo n.º 9
0
        public async Task <ActionResult> PayForCart(int paymentType)
        {
            var    headerValues = Request.Headers["Authorization"];
            string userId       = Authenticate.DecryptToken(headerValues.ToString());
            var    shoppingcart = await _shoppingCartService.GetByUserIdAsync(userId);

            foreach (var item in shoppingcart.ItemInCart)
            {
                var book = await _bookService.GetAsync(item.BookId);

                item.TotalMoney = item.Amount * item.Price;
                book.Amount     = book.Amount - item.Amount;
                await _bookService.UpdateAsync(book.Id, book);
            }
            await _orderService.CreateAsync(userId, paymentType, shoppingcart.ItemInCart);

            shoppingcart.ItemInCart.Clear();
            await _shoppingCartService.UpdateAsync(userId, shoppingcart);

            return(Ok("Thanh toán thành công"));
        }