public static IEnumerable <IDomainEvent> Handle(InventoryItemStockData d, Placed <CheckInItems> e) { if (string.IsNullOrEmpty(d.Sku)) { throw new EventualConsistencyException <InventoryItemCreated>(); } if (!d.IsActive) { return new[] { new InventoryItemActionInvalid { Action = "CheckIn", Id = e.Command.Id, Reason = "ItemInActive" } } } ; if (d.Count > d.OverStockLimit) { return new[] { new InventoryItemActionInvalid { Action = "CheckIn", Id = e.Command.Id, Reason = "OverStocked" } } } ; return(new[] { new ItemsCheckedInToInventory { Id = e.Command.Id, Count = e.Command.Count } }); }
public static IEnumerable <IDomainEvent> Handle(InventoryItemStockData d, Placed <RemoveInventoryItems> e) { if (string.IsNullOrEmpty(d.Sku)) { throw new EventualConsistencyException <InventoryItemCreated>(); } if (!d.IsActive) { return new[] { new InventoryItemActionInvalid { Action = "CheckOut", Id = e.Command.Id, Reason = "ItemInActive" } } } ; if (d.Count < e.Command.Count) { return new[] { new InventoryItemActionInvalid { Action = "CheckOut", Id = e.Command.Id, Reason = "BelowZeroStock" } } } ; return(new[] { new ItemsRemovedFromInventory { Id = e.Command.Id, Count = e.Command.Count } }); }
public static InventoryItemStockData Map(InventoryItemCreated e, InventoryItemStockData d) { return(new InventoryItemStockData { IsActive = true, Sku = e.Id }); }
private static InventoryItemStockData Map(InventoryItemStockLimitChanged e, InventoryItemStockData d) { return(new InventoryItemStockData { IsActive = d.IsActive, Sku = d.Sku, Count = d.Count, OverStockLimit = e.Limit }); }
public static InventoryItemStockData Map(InventoryItemDeactivated e, InventoryItemStockData d) { return(new InventoryItemStockData { IsActive = false, Sku = d.Sku, Count = d.Count, OverStockLimit = d.OverStockLimit }); }
public static InventoryItemStockData Map(ItemsRemovedFromInventory e, InventoryItemStockData d) { return(new InventoryItemStockData { IsActive = d.IsActive, Sku = d.Sku, Count = d.Count - e.Count, OverStockLimit = d.OverStockLimit }); }
public static InventoryItemStockData Map(ItemsCheckedInToInventory e, InventoryItemStockData d) { return(new InventoryItemStockData { IsActive = d.IsActive, Sku = d.Sku, Count = d.Count + e.Count, OverStockLimit = d.OverStockLimit }); }
public static IEnumerable <IDomainEvent> Handle(InventoryItemStockData d, Placed <CreateInventoryItem> e) { if (d.Sku?.Equals(e.Command.Id) == true) { return new[] { new JustSpinningMyWheels() } } ; return(new[] { new InventoryItemCreated { Id = e.Command.Id } }); }
public static IEnumerable <IDomainEvent> Handle(InventoryItemStockData d, Placed <DeactivateInventoryItem> e) { if (string.IsNullOrEmpty(d.Sku)) { throw new EventualConsistencyException <InventoryItemCreated>(); } if (!d.IsActive) { return new[] { new JustSpinningMyWheels() } } ; return(new[] { new InventoryItemDeactivated { Id = e.Command.Id } }); }