public async Task Handle(Entities.Item.Events.Removed e, IMessageHandlerContext ctx) { var order = await ctx.UoW().Get <Models.OrderingOrder>(e.OrderId).ConfigureAwait(false); order.Items = order.Items.TryRemove(e.ProductId, x => x.ProductId); order.Updated = e.Stamp; await ctx.UoW().Update(e.OrderId, order).ConfigureAwait(false); }
public async Task Handle(Entities.Item.Events.Removed e, IMessageHandlerContext ctx) { var order = await ctx.UoW().Get <Models.OrderingOrderIndex>(e.OrderId).ConfigureAwait(false); var item = await ctx.UoW().Get <Entities.Item.Models.OrderingOrderItem>(Entities.Item.Handler.ItemIdGenerator(e.OrderId, e.ProductId)).ConfigureAwait(false); order.SubTotal -= item.SubTotal; order.Updated = e.Stamp; await ctx.UoW().Update(e.OrderId, order).ConfigureAwait(false); }
public async Task Handle(Entities.Item.Events.Removed e, IMessageHandlerContext ctx) { var order = await ctx.UoW().Get <Models.OrderingOrderIndex>(e.OrderId).ConfigureAwait(false); var orderItem = await ctx.UoW().Get <Entities.Item.Models.OrderingOrderItem>(Entities.Item.Handler.ItemIdGenerator(e.OrderId, e.ProductId)).ConfigureAwait(false); var existing = await ctx.UoW().Get <Models.SalesChart>(IdGenerator(order.Created.FromUnix().Date)).ConfigureAwait(false); // remove existing value existing.Value -= orderItem.Total; await ctx.UoW().Update(existing.Id, existing).ConfigureAwait(false); }
public async Task Handle(Entities.Item.Events.Removed e, IMessageHandlerContext ctx) { var order = await ctx.UoW().Get <Models.OrderingOrderIndex>(e.OrderId).ConfigureAwait(false); var orderItem = await ctx.UoW().Get <Entities.Item.Models.OrderingOrderItem>(Entities.Item.Handler.ItemIdGenerator(e.OrderId, e.ProductId)).ConfigureAwait(false); var day = order.Created.FromUnix().Date; var month = new DateTime(day.Year, day.Month, 1); var existing = await ctx.UoW().Get <Models.SalesByState>(IdGenerator(month, order.ShippingState)).ConfigureAwait(false); // remove existing value existing.Value -= orderItem.Total; await ctx.UoW().Update(existing.Id, existing).ConfigureAwait(false); }