public override EventStream LoadEventStream(Type eventType, IEventStoreAggregateId eventStoreAggregateId, long version)
        {
            Type supportedEventType = typeof(PicklistItemMvoEventBase);

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

            criteria.Add(Restrictions.Eq("PicklistItemMvoEventId.PicklistBinPicklistItemIdPicklistBinId", idObj.PicklistBinId));
            criteria.Add(Restrictions.Eq("PicklistItemMvoEventId.PicklistBinPicklistItemIdPicklistItemOrderShipGrpInvIdOrderId", idObj.PicklistItemOrderShipGrpInvId.OrderId));
            criteria.Add(Restrictions.Eq("PicklistItemMvoEventId.PicklistBinPicklistItemIdPicklistItemOrderShipGrpInvIdOrderItemSeqId", idObj.PicklistItemOrderShipGrpInvId.OrderItemSeqId));
            criteria.Add(Restrictions.Eq("PicklistItemMvoEventId.PicklistBinPicklistItemIdPicklistItemOrderShipGrpInvIdShipGroupSeqId", idObj.PicklistItemOrderShipGrpInvId.ShipGroupSeqId));
            criteria.Add(Restrictions.Eq("PicklistItemMvoEventId.PicklistBinPicklistItemIdPicklistItemOrderShipGrpInvIdProductId", idObj.PicklistItemOrderShipGrpInvId.ProductId));
            criteria.Add(Restrictions.Eq("PicklistItemMvoEventId.PicklistBinPicklistItemIdPicklistItemOrderShipGrpInvIdLocatorId", idObj.PicklistItemOrderShipGrpInvId.LocatorId));
            criteria.Add(Restrictions.Eq("PicklistItemMvoEventId.PicklistBinPicklistItemIdPicklistItemOrderShipGrpInvIdAttributeSetInstanceId", idObj.PicklistItemOrderShipGrpInvId.AttributeSetInstanceId));
            criteria.Add(Restrictions.Le("PicklistItemMvoEventId.PicklistBinVersion", version));
            criteria.AddOrder(global::NHibernate.Criterion.Order.Asc("PicklistItemMvoEventId.PicklistBinVersion"));
            var es = criteria.List <IEvent>();

            foreach (PicklistItemMvoEventBase e in es)
            {
                e.EventReadOnly = true;
            }
            return(new EventStream()
            {
                SteamVersion = es.Count > 0 ? ((PicklistItemMvoEventBase)es.Last()).PicklistItemMvoEventId.PicklistBinVersion : default(long),
                Events = es
            });
        }
예제 #2
0
        public static string ToIdString(PicklistBinPicklistItemId id)
        {
            var formatter = (new ValueObjectTextFormatter <PicklistBinPicklistItemId>());
            var idStr     = formatter.ToString(id);

            return(idStr);
        }
        public IPicklistItemMvoState Get(PicklistBinPicklistItemId id)
        {
            IPicklistItemMvoState state = CurrentSession.Get <PicklistItemMvoState>(id);

            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <IPicklistItemMvoState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
예제 #4
0
        public async Task <IPicklistItemMvoEvent> GetStateEventAsync(PicklistBinPicklistItemId picklistBinPicklistItemId, long version)
        {
            var idObj         = PicklistItemMvoProxyUtils.ToIdString(picklistBinPicklistItemId);
            var uriParameters = new PicklistItemMvoStateEventUriParameters();

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

            var req  = new PicklistItemMvoStateEventGetRequest(uriParameters);
            var resp = await _ramlClient.PicklistItemMvoStateEvent.Get(req);

            PicklistItemMvoProxyUtils.ThrowOnHttpResponseError(resp);
            return(resp.Content);
        }
예제 #5
0
        public async Task <IPicklistItemMvoState> GetHistoryStateAsync(PicklistBinPicklistItemId picklistBinPicklistItemId, long version)
        {
            var idObj         = PicklistItemMvoProxyUtils.ToIdString(picklistBinPicklistItemId);
            var uriParameters = new PicklistItemMvoHistoryStateUriParameters();

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

            var req  = new PicklistItemMvoHistoryStateGetRequest(uriParameters);
            var resp = await _ramlClient.PicklistItemMvoHistoryState.Get(req);

            PicklistItemMvoProxyUtils.ThrowOnHttpResponseError(resp);
            return((resp.Content == null) ? null : resp.Content.ToPicklistItemMvoState());
        }
        public virtual IPicklistItemMvoEvent GetEvent(PicklistBinPicklistItemId picklistBinPicklistItemId, long version)
        {
            var e = (IPicklistItemMvoEvent)EventStore.GetEvent(ToEventStoreAggregateId(picklistBinPicklistItemId), version);

            if (e != null)
            {
                e.ReadOnly = true;
            }
            else if (version == -1)
            {
                return(GetEvent(picklistBinPicklistItemId, 0));
            }
            return(e);
        }
예제 #7
0
        public IPicklistItemMvoState Get(PicklistBinPicklistItemId id, bool nullAllowed)
        {
            IPicklistItemMvoState state = CurrentSession.Get <PicklistItemMvoState> (id);

            if (!nullAllowed && state == null)
            {
                state = new PicklistItemMvoState();
                (state as PicklistItemMvoState).PicklistBinPicklistItemId = id;
            }
            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <IPicklistItemMvoState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
예제 #8
0
        public async Task <IPicklistItemMvoState> GetAsync(PicklistBinPicklistItemId picklistBinPicklistItemId)
        {
            IPicklistItemMvoState state = null;
            var idObj         = PicklistItemMvoProxyUtils.ToIdString(picklistBinPicklistItemId);
            var uriParameters = new PicklistItemMvoUriParameters();

            uriParameters.Id = idObj;

            var req = new PicklistItemMvoGetRequest(uriParameters);

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

            PicklistItemMvoProxyUtils.ThrowOnHttpResponseError(resp);
            state = (resp.Content == null) ? null : resp.Content.ToPicklistItemMvoState();
            return(state);
        }
 public abstract IEventStoreAggregateId ToEventStoreAggregateId(PicklistBinPicklistItemId aggregateId);
 public override IEventStoreAggregateId ToEventStoreAggregateId(PicklistBinPicklistItemId aggregateId)
 {
     return(new EventStoreAggregateId(aggregateId));
 }
예제 #11
0
 public virtual IPicklistItemMvoState GetHistoryState(PicklistBinPicklistItemId picklistBinPicklistItemId, long version)
 {
     return(GetHistoryStateAsync(picklistBinPicklistItemId, version).GetAwaiter().GetResult());
 }
예제 #12
0
        public virtual IPicklistItemState GetPicklistItem(string picklistBinId, PicklistItemOrderShipGrpInvId picklistItemOrderShipGrpInvId)
        {
            var entityId = new PicklistBinPicklistItemId(picklistBinId, picklistItemOrderShipGrpInvId);

            return(CurrentSession.Get <PicklistItemState>(entityId));
        }
예제 #13
0
 public IPicklistItemMvoEvent GetEvent(PicklistBinPicklistItemId picklistBinPicklistItemId, long version)
 {
     return(GetStateEventAsync(picklistBinPicklistItemId, version).GetAwaiter().GetResult());
 }
예제 #14
0
 public PicklistItemMvoEventId(PicklistBinPicklistItemId picklistBinPicklistItemId, long picklistBinVersion)
 {
     this._picklistBinPicklistItemId = picklistBinPicklistItemId;
     this._picklistBinVersion        = picklistBinVersion;
 }
예제 #15
0
 public IPicklistItemMvoState Get(PicklistBinPicklistItemId picklistBinPicklistItemId)
 {
     return(GetAsync(picklistBinPicklistItemId).GetAwaiter().GetResult());
 }
        public virtual IPicklistItemMvoState Get(PicklistBinPicklistItemId picklistBinPicklistItemId)
        {
            var state = StateRepository.Get(picklistBinPicklistItemId, true);

            return(state);
        }
        public virtual IPicklistItemMvoState GetHistoryState(PicklistBinPicklistItemId picklistBinPicklistItemId, long version)
        {
            var eventStream = EventStore.LoadEventStream(typeof(IPicklistItemMvoEvent), ToEventStoreAggregateId(picklistBinPicklistItemId), version - 1);

            return(new PicklistItemMvoState(eventStream.Events));
        }