// /////////////////////////////////// private void CreateOrUpdateInventoryItemRequirement(decimal outputQuantity, InventoryPRTriggeredId tid, InventoryItemId outputItemId) { var itemState = InventoryItemRequirementApplicationService.Get(outputItemId); if (itemState != null) { var updateItem = new MergePatchInventoryItemRequirement(); updateItem.InventoryItemRequirementId = outputItemId; updateItem.Version = itemState.Version; updateItem.CommandId = Guid.NewGuid().ToString(); var createEntry = updateItem.NewCreateInventoryItemRequirementEntry(); SetCreateInventoryItemRequirementEntry(outputQuantity, tid, createEntry); updateItem.InventoryItemRequirementEntryCommands.Add(createEntry); InventoryItemRequirementApplicationService.When(updateItem); } else // is null { var createItem = new CreateInventoryItemRequirement(); createItem.InventoryItemRequirementId = outputItemId; createItem.CommandId = Guid.NewGuid().ToString(); var createEntry = createItem.NewCreateInventoryItemRequirementEntry(); SetCreateInventoryItemRequirementEntry(outputQuantity, tid, createEntry); createItem.Entries.Add(createEntry); InventoryItemRequirementApplicationService.When(createItem); //return InventoryItemRequirementApplicationService.Get(outputItemId); } }
public static string ToIdString(InventoryPRTriggeredId id) { var formatter = (new ValueObjectTextFormatter <InventoryPRTriggeredId>()); var idStr = formatter.ToString(id); return(idStr); }
public IInventoryPRTriggeredState Get(InventoryPRTriggeredId id, bool nullAllowed) { IInventoryPRTriggeredState state = CurrentSession.Get <InventoryPRTriggeredState> (id); if (!nullAllowed && state == null) { state = new InventoryPRTriggeredState(); (state as InventoryPRTriggeredState).InventoryPRTriggeredId = id; } return(state); }
// /////////////////////////////////// private InventoryPRTriggeredId GetOrCreateInventoryPRTriggered(IInventoryPostingRuleState pr, IInventoryItemEntryStateCreated iie) { var createTriggered = new CreateInventoryPRTriggered(); var sourceEntryId = new InventoryItemEntryId(iie.InventoryItemEntryEventId.InventoryItemId, iie.InventoryItemEntryEventId.EntrySeqId); string postingRuleId = pr.InventoryPostingRuleId; var tid = new InventoryPRTriggeredId(sourceEntryId, postingRuleId); createTriggered.InventoryPRTriggeredId = tid; createTriggered.CommandId = Guid.NewGuid().ToString(); createTriggered.IsProcessed = true; // now we use database strong consistency! InventoryPRTriggeredApplicationService.When(createTriggered); return(tid); //todo If existed?? }
public async Task <IInventoryPRTriggeredState> GetHistoryStateAsync(InventoryPRTriggeredId inventoryPRTriggeredId, long version) { var idObj = InventoryPRTriggeredProxyUtils.ToIdString(inventoryPRTriggeredId); var uriParameters = new InventoryPRTriggeredHistoryStateUriParameters(); uriParameters.Id = idObj; uriParameters.Version = version.ToString(); var req = new InventoryPRTriggeredHistoryStateGetRequest(uriParameters); var resp = await _ramlClient.InventoryPRTriggeredHistoryState.Get(req); InventoryPRTriggeredProxyUtils.ThrowOnHttpResponseError(resp); return((resp.Content == null) ? null : resp.Content.ToInventoryPRTriggeredState()); }
public async Task <IInventoryPRTriggeredEvent> GetStateEventAsync(InventoryPRTriggeredId inventoryPRTriggeredId, long version) { var idObj = InventoryPRTriggeredProxyUtils.ToIdString(inventoryPRTriggeredId); var uriParameters = new InventoryPRTriggeredStateEventUriParameters(); uriParameters.Id = idObj; uriParameters.Version = version.ToString(); var req = new InventoryPRTriggeredStateEventGetRequest(uriParameters); var resp = await _ramlClient.InventoryPRTriggeredStateEvent.Get(req); InventoryPRTriggeredProxyUtils.ThrowOnHttpResponseError(resp); return(resp.Content); }
public async Task <IInventoryPRTriggeredState> GetAsync(InventoryPRTriggeredId inventoryPRTriggeredId) { IInventoryPRTriggeredState state = null; var idObj = InventoryPRTriggeredProxyUtils.ToIdString(inventoryPRTriggeredId); var uriParameters = new InventoryPRTriggeredUriParameters(); uriParameters.Id = idObj; var req = new InventoryPRTriggeredGetRequest(uriParameters); var resp = await _ramlClient.InventoryPRTriggered.Get(req); InventoryPRTriggeredProxyUtils.ThrowOnHttpResponseError(resp); state = (resp.Content == null) ? null : resp.Content.ToInventoryPRTriggeredState(); return(state); }
public virtual IInventoryPRTriggeredState GetHistoryState(InventoryPRTriggeredId inventoryPRTriggeredId, long version) { return(GetHistoryStateAsync(inventoryPRTriggeredId, version).GetAwaiter().GetResult()); }
public IInventoryPRTriggeredEvent GetEvent(InventoryPRTriggeredId inventoryPRTriggeredId, long version) { return(GetStateEventAsync(inventoryPRTriggeredId, version).GetAwaiter().GetResult()); }
public IInventoryPRTriggeredState Get(InventoryPRTriggeredId inventoryPRTriggeredId) { return(GetAsync(inventoryPRTriggeredId).GetAwaiter().GetResult()); }
public IInventoryPRTriggeredState Get(InventoryPRTriggeredId id) { IInventoryPRTriggeredState state = CurrentSession.Get <InventoryPRTriggeredState>(id); return(state); }
public override IEventStoreAggregateId ToEventStoreAggregateId(InventoryPRTriggeredId aggregateId) { return(new EventStoreAggregateId(aggregateId)); }
private void CreateOrUpdateOutputAccount(string outputAccountName, decimal outputQuantity, InventoryPRTriggeredId tid, InventoryItemId outputItemId) { if (InventoryPostingRuleIds.OutputAccountNameSellableQuantity == outputAccountName) { CreateOrUpdateSellableInventoryItem(outputQuantity, tid, outputItemId); } else if (InventoryPostingRuleIds.OutputAccountNameRequiredQuantity == outputAccountName) { CreateOrUpdateInventoryItemRequirement(outputQuantity, tid, outputItemId); } else { throw new NotSupportedException(String.Format("outputAccountName = {0}", outputAccountName)); } }
private void SetCreateInventoryItemRequirementEntry(decimal outputQuantity, InventoryPRTriggeredId tid, CreateInventoryItemRequirementEntry createEntry) { createEntry.EntrySeqId = SeqIdGenerator.GetNextId();//DateTime.Now.Ticks; createEntry.Quantity = outputQuantity; createEntry.SourceEventId = tid; }