Пример #1
0
        protected virtual IInventoryItemStateCreated Map(ICreateInventoryItem c)
        {
            var stateEventId             = new InventoryItemEventId(c.InventoryItemId, c.Version);
            IInventoryItemStateCreated e = NewInventoryItemStateCreated(stateEventId);

            e.CommandId = c.CommandId;


            e.CreatedBy = (string)c.RequesterId;
            e.CreatedAt = ApplicationContext.Current.TimestampService.Now <DateTime>();
            var version = c.Version;

            decimal onHandQuantity    = default(decimal);
            decimal inTransitQuantity = default(decimal);
            decimal reservedQuantity  = default(decimal);
            decimal occupiedQuantity  = default(decimal);
            decimal virtualQuantity   = default(decimal);

            foreach (ICreateInventoryItemEntry innerCommand in c.Entries)
            {
                ThrowOnInconsistentCommands(c, innerCommand);

                IInventoryItemEntryStateCreated innerEvent = MapCreate(innerCommand, c, version, _state);
                e.AddInventoryItemEntryEvent(innerEvent);
                onHandQuantity    = onHandQuantity + (innerEvent.OnHandQuantity != null ? innerEvent.OnHandQuantity.GetValueOrDefault() : default(decimal));
                inTransitQuantity = inTransitQuantity + (innerEvent.InTransitQuantity != null ? innerEvent.InTransitQuantity.GetValueOrDefault() : default(decimal));
                reservedQuantity  = reservedQuantity + (innerEvent.ReservedQuantity != null ? innerEvent.ReservedQuantity.GetValueOrDefault() : default(decimal));
                occupiedQuantity  = occupiedQuantity + (innerEvent.OccupiedQuantity != null ? innerEvent.OccupiedQuantity.GetValueOrDefault() : default(decimal));
                virtualQuantity   = virtualQuantity + (innerEvent.VirtualQuantity != null ? innerEvent.VirtualQuantity.GetValueOrDefault() : default(decimal));
            }

            e.OnHandQuantity    = onHandQuantity;
            e.InTransitQuantity = inTransitQuantity;
            e.ReservedQuantity  = reservedQuantity;
            e.OccupiedQuantity  = occupiedQuantity;
            e.VirtualQuantity   = virtualQuantity;

            return(e);
        }
Пример #2
0
        public virtual InventoryItemStateCreatedDto ToInventoryItemStateCreatedDto(IInventoryItemStateCreated e)
        {
            var dto = new InventoryItemStateCreatedDto();

            dto.InventoryItemEventId = e.InventoryItemEventId;
            dto.CreatedAt            = e.CreatedAt;
            dto.CreatedBy            = e.CreatedBy;
            dto.CommandId            = e.CommandId;
            dto.OnHandQuantity       = e.OnHandQuantity;
            dto.InTransitQuantity    = e.InTransitQuantity;
            dto.ReservedQuantity     = e.ReservedQuantity;
            dto.OccupiedQuantity     = e.OccupiedQuantity;
            dto.VirtualQuantity      = e.VirtualQuantity;
            var inventoryItemEntryEvents = new List <InventoryItemEntryStateCreatedDto>();

            foreach (var ee in e.InventoryItemEntryEvents)
            {
                InventoryItemEntryStateCreatedDto eeDto = InventoryItemEntryStateEventDtoConverter.ToInventoryItemEntryStateCreatedDto(ee);
                inventoryItemEntryEvents.Add(eeDto);
            }
            dto.InventoryItemEntryEvents = inventoryItemEntryEvents.ToArray();

            return(dto);
        }
Пример #3
0
 void IInventoryItemState.When(IInventoryItemStateCreated e)
 {
     throw new NotSupportedException();
 }
Пример #4
0
        public virtual void Create(ICreateInventoryItem c)
        {
            IInventoryItemStateCreated e = Map(c);

            Apply(e);
        }