Esempio n. 1
0
        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
                           } });
        }
Esempio n. 2
0
        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
                           } });
        }
Esempio n. 3
0
 public static InventoryItemStockData Map(InventoryItemCreated e, InventoryItemStockData d)
 {
     return(new InventoryItemStockData
     {
         IsActive = true,
         Sku = e.Id
     });
 }
Esempio n. 4
0
 private static InventoryItemStockData Map(InventoryItemStockLimitChanged e, InventoryItemStockData d)
 {
     return(new InventoryItemStockData
     {
         IsActive = d.IsActive,
         Sku = d.Sku,
         Count = d.Count,
         OverStockLimit = e.Limit
     });
 }
Esempio n. 5
0
 public static InventoryItemStockData Map(InventoryItemDeactivated e, InventoryItemStockData d)
 {
     return(new InventoryItemStockData
     {
         IsActive = false,
         Sku = d.Sku,
         Count = d.Count,
         OverStockLimit = d.OverStockLimit
     });
 }
Esempio n. 6
0
 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
     });
 }
Esempio n. 7
0
 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
     });
 }
Esempio n. 8
0
        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
                           } });
        }
Esempio n. 9
0
        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
                           } });
        }