// ///////////////////////////////////


        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());
 }
Example #11
0
        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;
 }