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); }
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); }
void IInventoryItemState.When(IInventoryItemStateCreated e) { throw new NotSupportedException(); }
public virtual void Create(ICreateInventoryItem c) { IInventoryItemStateCreated e = Map(c); Apply(e); }