/// <summary>
        /// Update existed anonymous cart
        /// </summary>
        /// <param name="websiteId"></param>
        /// <param name="anonymousCartModel"></param>
        /// <returns></returns>
        public async Task UpdateAsync(int websiteId, AnonymousCartModel anonymousCartModel)
        {
            var anonymousCartRepository = unitOfWork.GetRepository <AnonymousCart>();
            var anonymousCart           = await anonymousCartRepository.FindByAsync(x => !x.DeletedDate.HasValue &&
                                                                                    x.Id == anonymousCartModel.Id && x.IdentityCode == anonymousCartModel.IdentityCode.ToString());

            if (anonymousCart == null)
            {
                throw new NotFoundException(string.Format(
                                                MessageResponse.NotFoundError, nameof(AnonymousCart), anonymousCartModel.Id));
            }

            anonymousCart = mapper.Map(anonymousCartModel, anonymousCart);
            anonymousCartRepository.Update(anonymousCart);
            await unitOfWork.CommitAsync();
        }
        public void TestUpdateAsync_WithExistedCart_ShouldUpdateQuantity()
        {
            var cartModel = new AnonymousCartModel
            {
                Id           = 1,
                IdentityCode = Guid.Parse(identityCode),
                WebsiteId    = 1,
                ProductId    = 1,
                Quantity     = 10
            };

            anonymousCartService.UpdateAsync(1, cartModel).GetAwaiter().GetResult();
            var actualQuantity = anonymousCarts.First(x => x.Id == 1).Quantity;

            Assert.AreEqual(cartModel.Quantity, actualQuantity);
        }
        public void TestUpdateAsync_WithNotFoundCart_ShouldThrowNotFoundException()
        {
            var cartModel = new AnonymousCartModel
            {
                Id           = 3,
                IdentityCode = Guid.Parse(identityCode),
                WebsiteId    = 1,
                ProductId    = 1,
                Quantity     = 1
            };

            var ex = Assert.ThrowsAsync <NotFoundException>(() => anonymousCartService.UpdateAsync(1, cartModel));

            Assert.AreEqual(string.Format(MessageResponse.NotFoundError, nameof(AnonymousCart),
                                          cartModel.Id), ex.Message);
        }
예제 #4
0
        public async Task <IActionResult> Put(AnonymousCartModel anonymousCartModel)
        {
            await this.anonymousCartService.UpdateAsync(this.WebsiteId, anonymousCartModel);

            return(Ok(new ApiResponse <AnonymousCartModel>()));
        }