protected InventoryItemStateMergePatched NewInventoryItemStateMergePatched(long version, string commandId, string requesterId) { var stateEventId = new InventoryItemEventId(_state.InventoryItemId, version); var e = NewInventoryItemStateMergePatched(stateEventId); e.CommandId = commandId; e.CreatedBy = (string)requesterId; e.CreatedAt = ApplicationContext.Current.TimestampService.Now <DateTime>(); return(e); }
protected virtual IInventoryItemStateMergePatched Map(IMergePatchInventoryItem c) { var stateEventId = new InventoryItemEventId(c.InventoryItemId, c.Version); IInventoryItemStateMergePatched e = NewInventoryItemStateMergePatched(stateEventId); e.CommandId = c.CommandId; e.CreatedBy = (string)c.RequesterId; e.CreatedAt = ApplicationContext.Current.TimestampService.Now <DateTime>(); var version = c.Version; decimal onHandQuantity = _state.OnHandQuantity; decimal inTransitQuantity = _state.InTransitQuantity; decimal reservedQuantity = _state.ReservedQuantity; decimal occupiedQuantity = _state.OccupiedQuantity; decimal virtualQuantity = _state.VirtualQuantity; foreach (IInventoryItemEntryCommand innerCommand in c.InventoryItemEntryCommands) { ThrowOnInconsistentCommands(c, innerCommand); IInventoryItemEntryEvent innerEvent = Map(innerCommand, c, version, _state); e.AddInventoryItemEntryEvent(innerEvent); // //////////////// if (!(innerEvent is IInventoryItemEntryStateCreated)) { continue; } var entryCreated = (IInventoryItemEntryStateCreated)innerEvent; onHandQuantity = onHandQuantity + (entryCreated.OnHandQuantity != null ? entryCreated.OnHandQuantity.GetValueOrDefault() : default(decimal)); inTransitQuantity = inTransitQuantity + (entryCreated.InTransitQuantity != null ? entryCreated.InTransitQuantity.GetValueOrDefault() : default(decimal)); reservedQuantity = reservedQuantity + (entryCreated.ReservedQuantity != null ? entryCreated.ReservedQuantity.GetValueOrDefault() : default(decimal)); occupiedQuantity = occupiedQuantity + (entryCreated.OccupiedQuantity != null ? entryCreated.OccupiedQuantity.GetValueOrDefault() : default(decimal)); virtualQuantity = virtualQuantity + (entryCreated.VirtualQuantity != null ? entryCreated.VirtualQuantity.GetValueOrDefault() : default(decimal)); // //////////////// } e.OnHandQuantity = onHandQuantity; e.InTransitQuantity = inTransitQuantity; e.ReservedQuantity = reservedQuantity; e.OccupiedQuantity = occupiedQuantity; e.VirtualQuantity = virtualQuantity; return(e); }
public override bool Equals(object obj) { if (Object.ReferenceEquals(this, obj)) { return(true); } InventoryItemEventId other = obj as InventoryItemEventId; if (other == null) { return(false); } return(true && Object.Equals(this.InventoryItemId, other.InventoryItemId) && Object.Equals(this.Version, other.Version) ); }
protected InventoryItemEventBase(InventoryItemEventId stateEventId) { this.InventoryItemEventId = stateEventId; }
public InventoryItemStateMergePatched(InventoryItemEventId stateEventId) : base(stateEventId) { }
public InventoryItemStateCreated(InventoryItemEventId stateEventId) : base(stateEventId) { }
protected InventoryItemStateEventBase(InventoryItemEventId stateEventId) : base(stateEventId) { }
private InventoryItemStateMergePatched NewInventoryItemStateMergePatched(InventoryItemEventId stateEventId) { return(new InventoryItemStateMergePatched(stateEventId)); }
//////////////////////// private InventoryItemStateCreated NewInventoryItemStateCreated(InventoryItemEventId stateEventId) { return(new InventoryItemStateCreated(stateEventId)); }