Beispiel #1
0
        protected override void When(object @event)
        {
            switch (@event)
            {
            case V1.StationAddedToOnHand e:
                Id          = new StationId(e.StationId);
                ParentId    = OnHandId.FromGuid(e.OnHandId);
                StationName = StationName.FromString(e.StationName);
                _items      = new List <Item>();
                break;

            case V1.ItemAddedToStation e:
            {
                var item = new Item(Apply);
                item.Handle(e);
                _items.Add(item);
            }
            break;
            }
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Create OnHand");

            var onHand = OnHand.Create(OnHandId.FromGuid(Guid.NewGuid()));

            Console.WriteLine($"OnHand: {onHand.State}");
            onHand.Stations.ToList().ForEach(e => Console.WriteLine($"{e.Id} - {e.StationName}"));
            Console.WriteLine();

            Console.WriteLine("Add Station");
            onHand.AddStation("TestStation");
            Console.WriteLine($"OnHand: {onHand.State}");
            onHand.Stations.ToList().ForEach(e => Console.WriteLine($"{e.Id} - {e.StationName}"));
            Console.WriteLine();

            Console.WriteLine("Add Station");
            onHand.AddStation("TestStation2");
            Console.WriteLine($"OnHand: {onHand.State}");
            onHand.Stations.ToList().ForEach(e => Console.WriteLine($"{e.Id} - {e.StationName}"));
            onHand.Stations.ToList().ForEach(e => e.Items.ToList().ForEach(i => Console.WriteLine($"Item: {i}")));

            Console.WriteLine();

            var station = onHand.Stations.First();

            Console.WriteLine("Add Item");
            onHand.AddItemToStation(station.Id.Value, Guid.NewGuid(), "Test Item");
            Console.WriteLine($"OnHand: {onHand.State}");
            onHand.Stations.ToList().ForEach(e => Console.WriteLine($"{e.Id} - {e.StationName}"));
            onHand.Stations.ToList().ForEach(e => e.Items.ToList().ForEach(i => Console.WriteLine($"Item: {i.Id} - {i.ItemName}")));

            Console.WriteLine();
            var events = onHand.GetChanges();

            foreach (var e in events)
            {
                Console.WriteLine($"{e}");
            }
        }