コード例 #1
0
        public override EventStream LoadEventStream(Type eventType, IEventStoreAggregateId eventStoreAggregateId, long version)
        {
            Type supportedEventType = typeof(SellableInventoryItemEntryMvoEventBase);

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

            criteria.Add(Restrictions.Eq("SellableInventoryItemEntryMvoEventId.SellableInventoryItemEntryIdSellableInventoryItemIdProductId", idObj.SellableInventoryItemId.ProductId));
            criteria.Add(Restrictions.Eq("SellableInventoryItemEntryMvoEventId.SellableInventoryItemEntryIdSellableInventoryItemIdLocatorId", idObj.SellableInventoryItemId.LocatorId));
            criteria.Add(Restrictions.Eq("SellableInventoryItemEntryMvoEventId.SellableInventoryItemEntryIdSellableInventoryItemIdAttributeSetInstanceId", idObj.SellableInventoryItemId.AttributeSetInstanceId));
            criteria.Add(Restrictions.Eq("SellableInventoryItemEntryMvoEventId.SellableInventoryItemEntryIdEntrySeqId", idObj.EntrySeqId));
            criteria.Add(Restrictions.Le("SellableInventoryItemEntryMvoEventId.SellableInventoryItemVersion", version));
            criteria.AddOrder(global::NHibernate.Criterion.Order.Asc("SellableInventoryItemEntryMvoEventId.SellableInventoryItemVersion"));
            var es = criteria.List <IEvent>();

            foreach (SellableInventoryItemEntryMvoEventBase e in es)
            {
                e.EventReadOnly = true;
            }
            return(new EventStream()
            {
                SteamVersion = es.Count > 0 ? ((SellableInventoryItemEntryMvoEventBase)es.Last()).SellableInventoryItemEntryMvoEventId.SellableInventoryItemVersion : default(long),
                Events = es
            });
        }
        public static string ToIdString(SellableInventoryItemEntryId id)
        {
            var formatter = (new ValueObjectTextFormatter <SellableInventoryItemEntryId>());
            var idStr     = formatter.ToString(id);

            return(idStr);
        }
コード例 #3
0
        public ISellableInventoryItemEntryMvoState Get(SellableInventoryItemEntryId id)
        {
            ISellableInventoryItemEntryMvoState state = CurrentSession.Get <SellableInventoryItemEntryMvoState>(id);

            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <ISellableInventoryItemEntryMvoState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
コード例 #4
0
        public ISellableInventoryItemEntryState Get(SellableInventoryItemEntryId id, bool nullAllowed)
        {
            ISellableInventoryItemEntryState state = CurrentSession.Get <SellableInventoryItemEntryState>(id);

            if (!nullAllowed && state == null)
            {
                state = new SellableInventoryItemEntryState();
                (state as SellableInventoryItemEntryState).SellableInventoryItemEntryId = id;
            }
            return(state);
        }
コード例 #5
0
        public virtual ISellableInventoryItemEntryMvoEvent GetEvent(SellableInventoryItemEntryId sellableInventoryItemEntryId, long version)
        {
            var e = (ISellableInventoryItemEntryMvoEvent)EventStore.GetEvent(ToEventStoreAggregateId(sellableInventoryItemEntryId), version);

            if (e != null)
            {
                e.ReadOnly = true;
            }
            else if (version == -1)
            {
                return(GetEvent(sellableInventoryItemEntryId, 0));
            }
            return(e);
        }
        public async Task <ISellableInventoryItemEntryMvoState> GetHistoryStateAsync(SellableInventoryItemEntryId sellableInventoryItemEntryId, long version)
        {
            var idObj         = SellableInventoryItemEntryMvoProxyUtils.ToIdString(sellableInventoryItemEntryId);
            var uriParameters = new SellableInventoryItemEntryMvoHistoryStateUriParameters();

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

            var req  = new SellableInventoryItemEntryMvoHistoryStateGetRequest(uriParameters);
            var resp = await _ramlClient.SellableInventoryItemEntryMvoHistoryState.Get(req);

            SellableInventoryItemEntryMvoProxyUtils.ThrowOnHttpResponseError(resp);
            return((resp.Content == null) ? null : resp.Content.ToSellableInventoryItemEntryMvoState());
        }
コード例 #7
0
        public ISellableInventoryItemEntryMvoState Get(SellableInventoryItemEntryId id, bool nullAllowed)
        {
            ISellableInventoryItemEntryMvoState state = CurrentSession.Get <SellableInventoryItemEntryMvoState> (id);

            if (!nullAllowed && state == null)
            {
                state = new SellableInventoryItemEntryMvoState();
                (state as SellableInventoryItemEntryMvoState).SellableInventoryItemEntryId = id;
            }
            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <ISellableInventoryItemEntryMvoState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
        public async Task <ISellableInventoryItemEntryMvoState> GetAsync(SellableInventoryItemEntryId sellableInventoryItemEntryId)
        {
            ISellableInventoryItemEntryMvoState state = null;
            var idObj         = SellableInventoryItemEntryMvoProxyUtils.ToIdString(sellableInventoryItemEntryId);
            var uriParameters = new SellableInventoryItemEntryMvoUriParameters();

            uriParameters.Id = idObj;

            var req = new SellableInventoryItemEntryMvoGetRequest(uriParameters);

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

            SellableInventoryItemEntryMvoProxyUtils.ThrowOnHttpResponseError(resp);
            state = (resp.Content == null) ? null : resp.Content.ToSellableInventoryItemEntryMvoState();
            return(state);
        }
コード例 #9
0
 public SellableInventoryItemEntryMvoEventId(SellableInventoryItemEntryId sellableInventoryItemEntryId, long sellableInventoryItemVersion)
 {
     this._sellableInventoryItemEntryId = sellableInventoryItemEntryId;
     this._sellableInventoryItemVersion = sellableInventoryItemVersion;
 }
コード例 #10
0
 public abstract IEventStoreAggregateId ToEventStoreAggregateId(SellableInventoryItemEntryId aggregateId);
コード例 #11
0
        public virtual ISellableInventoryItemEntryMvoState GetHistoryState(SellableInventoryItemEntryId sellableInventoryItemEntryId, long version)
        {
            var eventStream = EventStore.LoadEventStream(typeof(ISellableInventoryItemEntryMvoEvent), ToEventStoreAggregateId(sellableInventoryItemEntryId), version - 1);

            return(new SellableInventoryItemEntryMvoState(eventStream.Events));
        }
コード例 #12
0
        public virtual ISellableInventoryItemEntryMvoState Get(SellableInventoryItemEntryId sellableInventoryItemEntryId)
        {
            var state = StateRepository.Get(sellableInventoryItemEntryId, true);

            return(state);
        }
 public virtual ISellableInventoryItemEntryMvoState GetHistoryState(SellableInventoryItemEntryId sellableInventoryItemEntryId, long version)
 {
     return(GetHistoryStateAsync(sellableInventoryItemEntryId, version).GetAwaiter().GetResult());
 }
 public ISellableInventoryItemEntryMvoEvent GetEvent(SellableInventoryItemEntryId sellableInventoryItemEntryId, long version)
 {
     return(GetStateEventAsync(sellableInventoryItemEntryId, version).GetAwaiter().GetResult());
 }
 public ISellableInventoryItemEntryMvoState Get(SellableInventoryItemEntryId sellableInventoryItemEntryId)
 {
     return(GetAsync(sellableInventoryItemEntryId).GetAwaiter().GetResult());
 }
 public virtual ISellableInventoryItemEntryState GetSellableInventoryItemEntry(InventoryItemId sellableInventoryItemId, long entrySeqId)
 {
     var entityId = new SellableInventoryItemEntryId(sellableInventoryItemId, entrySeqId);
     return CurrentSession.Get<SellableInventoryItemEntryState>(entityId);
 }
コード例 #17
0
 public override IEventStoreAggregateId ToEventStoreAggregateId(SellableInventoryItemEntryId aggregateId)
 {
     return(new EventStoreAggregateId(aggregateId));
 }