Beispiel #1
0
        public override EventStream LoadEventStream(Type eventType, IEventStoreAggregateId eventStoreAggregateId, long version)
        {
            Type supportedEventType = typeof(InventoryItemEntryMvoEventBase);

            if (!eventType.IsAssignableFrom(supportedEventType))
            {
                throw new NotSupportedException();
            }
            InventoryItemEntryId idObj = (InventoryItemEntryId)(eventStoreAggregateId as EventStoreAggregateId).Id;
            var criteria = CurrentSession.CreateCriteria <InventoryItemEntryMvoEventBase>();

            criteria.Add(Restrictions.Eq("InventoryItemEntryMvoEventId.InventoryItemEntryIdInventoryItemIdProductId", idObj.InventoryItemId.ProductId));
            criteria.Add(Restrictions.Eq("InventoryItemEntryMvoEventId.InventoryItemEntryIdInventoryItemIdLocatorId", idObj.InventoryItemId.LocatorId));
            criteria.Add(Restrictions.Eq("InventoryItemEntryMvoEventId.InventoryItemEntryIdInventoryItemIdAttributeSetInstanceId", idObj.InventoryItemId.AttributeSetInstanceId));
            criteria.Add(Restrictions.Eq("InventoryItemEntryMvoEventId.InventoryItemEntryIdEntrySeqId", idObj.EntrySeqId));
            criteria.Add(Restrictions.Le("InventoryItemEntryMvoEventId.InventoryItemVersion", version));
            criteria.AddOrder(global::NHibernate.Criterion.Order.Asc("InventoryItemEntryMvoEventId.InventoryItemVersion"));
            var es = criteria.List <IEvent>();

            foreach (InventoryItemEntryMvoEventBase e in es)
            {
                e.EventReadOnly = true;
            }
            return(new EventStream()
            {
                SteamVersion = es.Count > 0 ? ((InventoryItemEntryMvoEventBase)es.Last()).InventoryItemEntryMvoEventId.InventoryItemVersion : default(long),
                Events = es
            });
        }
Beispiel #2
0
        public static string ToIdString(InventoryItemEntryId id)
        {
            var formatter = (new ValueObjectTextFormatter <InventoryItemEntryId>());
            var idStr     = formatter.ToString(id);

            return(idStr);
        }
        public IInventoryItemEntryMvoState Get(InventoryItemEntryId id)
        {
            IInventoryItemEntryMvoState state = CurrentSession.Get <InventoryItemEntryMvoState>(id);

            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <IInventoryItemEntryMvoState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            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??
        }
Beispiel #5
0
        public async Task <IInventoryItemEntryMvoState> GetHistoryStateAsync(InventoryItemEntryId inventoryItemEntryId, long version)
        {
            var idObj         = InventoryItemEntryMvoProxyUtils.ToIdString(inventoryItemEntryId);
            var uriParameters = new InventoryItemEntryMvoHistoryStateUriParameters();

            uriParameters.Id      = idObj;
            uriParameters.Version = version.ToString();

            var req  = new InventoryItemEntryMvoHistoryStateGetRequest(uriParameters);
            var resp = await _ramlClient.InventoryItemEntryMvoHistoryState.Get(req);

            InventoryItemEntryMvoProxyUtils.ThrowOnHttpResponseError(resp);
            return((resp.Content == null) ? null : resp.Content.ToInventoryItemEntryMvoState());
        }
Beispiel #6
0
        public async Task <IInventoryItemEntryMvoEvent> GetStateEventAsync(InventoryItemEntryId inventoryItemEntryId, long version)
        {
            var idObj         = InventoryItemEntryMvoProxyUtils.ToIdString(inventoryItemEntryId);
            var uriParameters = new InventoryItemEntryMvoStateEventUriParameters();

            uriParameters.Id      = idObj;
            uriParameters.Version = version.ToString();

            var req  = new InventoryItemEntryMvoStateEventGetRequest(uriParameters);
            var resp = await _ramlClient.InventoryItemEntryMvoStateEvent.Get(req);

            InventoryItemEntryMvoProxyUtils.ThrowOnHttpResponseError(resp);
            return(resp.Content);
        }
Beispiel #7
0
        public virtual IInventoryItemEntryMvoEvent GetEvent(InventoryItemEntryId inventoryItemEntryId, long version)
        {
            var e = (IInventoryItemEntryMvoEvent)EventStore.GetEvent(ToEventStoreAggregateId(inventoryItemEntryId), version);

            if (e != null)
            {
                e.ReadOnly = true;
            }
            else if (version == -1)
            {
                return(GetEvent(inventoryItemEntryId, 0));
            }
            return(e);
        }
Beispiel #8
0
        public IInventoryItemEntryMvoState Get(InventoryItemEntryId id, bool nullAllowed)
        {
            IInventoryItemEntryMvoState state = CurrentSession.Get <InventoryItemEntryMvoState> (id);

            if (!nullAllowed && state == null)
            {
                state = new InventoryItemEntryMvoState();
                (state as InventoryItemEntryMvoState).InventoryItemEntryId = id;
            }
            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <IInventoryItemEntryMvoState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
Beispiel #9
0
        public async Task <IInventoryItemEntryMvoState> GetAsync(InventoryItemEntryId inventoryItemEntryId)
        {
            IInventoryItemEntryMvoState state = null;
            var idObj         = InventoryItemEntryMvoProxyUtils.ToIdString(inventoryItemEntryId);
            var uriParameters = new InventoryItemEntryMvoUriParameters();

            uriParameters.Id = idObj;

            var req = new InventoryItemEntryMvoGetRequest(uriParameters);

            var resp = await _ramlClient.InventoryItemEntryMvo.Get(req);

            InventoryItemEntryMvoProxyUtils.ThrowOnHttpResponseError(resp);
            state = (resp.Content == null) ? null : resp.Content.ToInventoryItemEntryMvoState();
            return(state);
        }
Beispiel #10
0
        public virtual IInventoryItemEntryMvoState Get(InventoryItemEntryId inventoryItemEntryId)
        {
            var state = StateRepository.Get(inventoryItemEntryId, true);

            return(state);
        }
Beispiel #11
0
 public InventoryPRTriggeredId(InventoryItemEntryId sourceEntryId, string inventoryPostingRuleId)
 {
     this._sourceEntryId          = sourceEntryId;
     this._inventoryPostingRuleId = inventoryPostingRuleId;
 }
 public override IEventStoreAggregateId ToEventStoreAggregateId(InventoryItemEntryId aggregateId)
 {
     return(new EventStoreAggregateId(aggregateId));
 }
Beispiel #13
0
 public InventoryItemEntryMvoEventId(InventoryItemEntryId inventoryItemEntryId, long inventoryItemVersion)
 {
     this._inventoryItemEntryId = inventoryItemEntryId;
     this._inventoryItemVersion = inventoryItemVersion;
 }
Beispiel #14
0
 public IInventoryItemEntryMvoEvent GetEvent(InventoryItemEntryId inventoryItemEntryId, long version)
 {
     return(GetStateEventAsync(inventoryItemEntryId, version).GetAwaiter().GetResult());
 }
Beispiel #15
0
 public virtual IInventoryItemEntryMvoState GetHistoryState(InventoryItemEntryId inventoryItemEntryId, long version)
 {
     return(GetHistoryStateAsync(inventoryItemEntryId, version).GetAwaiter().GetResult());
 }
Beispiel #16
0
 public abstract IEventStoreAggregateId ToEventStoreAggregateId(InventoryItemEntryId aggregateId);
Beispiel #17
0
        public virtual IInventoryItemEntryMvoState GetHistoryState(InventoryItemEntryId inventoryItemEntryId, long version)
        {
            var eventStream = EventStore.LoadEventStream(typeof(IInventoryItemEntryMvoEvent), ToEventStoreAggregateId(inventoryItemEntryId), version - 1);

            return(new InventoryItemEntryMvoState(eventStream.Events));
        }
        public virtual IInventoryItemEntryState GetInventoryItemEntry(InventoryItemId inventoryItemId, long entrySeqId)
        {
            var entityId = new InventoryItemEntryId(inventoryItemId, entrySeqId);

            return(CurrentSession.Get <InventoryItemEntryState>(entityId));
        }
Beispiel #19
0
 public IInventoryItemEntryMvoState Get(InventoryItemEntryId inventoryItemEntryId)
 {
     return(GetAsync(inventoryItemEntryId).GetAwaiter().GetResult());
 }