protected virtual IInventoryItemRequirementStateMergePatched Map(IMergePatchInventoryItemRequirement c) { var stateEventId = new InventoryItemRequirementEventId(c.InventoryItemRequirementId, c.Version); IInventoryItemRequirementStateMergePatched e = NewInventoryItemRequirementStateMergePatched(stateEventId); e.CommandId = c.CommandId; e.CreatedBy = (string)c.RequesterId; e.CreatedAt = ApplicationContext.Current.TimestampService.Now <DateTime>(); var version = c.Version; decimal quantity = _state.Quantity; foreach (IInventoryItemRequirementEntryCommand innerCommand in c.InventoryItemRequirementEntryCommands) { ThrowOnInconsistentCommands(c, innerCommand); IInventoryItemRequirementEntryEvent innerEvent = Map(innerCommand, c, version, _state); e.AddInventoryItemRequirementEntryEvent(innerEvent); // //////////////// if (!(innerEvent is IInventoryItemRequirementEntryStateCreated)) { continue; } var entryCreated = (IInventoryItemRequirementEntryStateCreated)innerEvent; quantity = quantity + (entryCreated.Quantity != null ? entryCreated.Quantity.GetValueOrDefault() : default(decimal)); // //////////////// } e.Quantity = quantity; return(e); }
public virtual void When(IMergePatchInventoryItemRequirement c) { Update(c, ar => ar.MergePatch(c)); }
public virtual void MergePatch(IMergePatchInventoryItemRequirement c) { IInventoryItemRequirementStateMergePatched e = Map(c); Apply(e); }
void IInventoryItemRequirementApplicationService.When(IMergePatchInventoryItemRequirement c) { this.When((MergePatchInventoryItemRequirementDto)c); }