/// <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); }
public async Task <IActionResult> Put(AnonymousCartModel anonymousCartModel) { await this.anonymousCartService.UpdateAsync(this.WebsiteId, anonymousCartModel); return(Ok(new ApiResponse <AnonymousCartModel>())); }