public async Task Handle(Entities.Item.Events.QuantityUpdated e, IMessageHandlerContext ctx) { var basket = await ctx.UoW().Get <Models.Basket>(e.BasketId) .ConfigureAwait(false); var item = basket.Items.Single(x => x.ProductId == e.ProductId); item.Quantity = e.Quantity; await ctx.UoW().Update(e.BasketId, basket).ConfigureAwait(false); }
public async Task Handle(Entities.Item.Events.QuantityUpdated e, IMessageHandlerContext ctx) { var basket = await ctx.UoW().Get <Models.BasketIndex>(e.BasketId) .ConfigureAwait(false); var item = await ctx.UoW() .Get <Entities.Item.Models.BasketItemIndex>(Entities.Item.BasketItemIndex.ItemIdGenerator(e.BasketId, e.ProductId)).ConfigureAwait(false); // Todo: verify item is the item state before IT processes QuantityUpdated basket.TotalQuantity -= item.Quantity; basket.SubTotal -= item.SubTotal; item.Quantity = e.Quantity; basket.TotalQuantity += item.Quantity; basket.SubTotal += item.SubTotal; await ctx.UoW().Update(e.BasketId, basket).ConfigureAwait(false); }