Пример #1
0
        public override EventStream LoadEventStream(Type eventType, IEventStoreAggregateId eventStoreAggregateId, long version)
        {
            Type supportedEventType = typeof(ShipmentItemMvoEventBase);

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

            criteria.Add(Restrictions.Eq("ShipmentItemMvoEventId.ShipmentItemIdShipmentId", idObj.ShipmentId));
            criteria.Add(Restrictions.Eq("ShipmentItemMvoEventId.ShipmentItemIdShipmentItemSeqId", idObj.ShipmentItemSeqId));
            criteria.Add(Restrictions.Le("ShipmentItemMvoEventId.ShipmentVersion", version));
            criteria.AddOrder(global::NHibernate.Criterion.Order.Asc("ShipmentItemMvoEventId.ShipmentVersion"));
            var es = criteria.List <IEvent>();

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

            return(idStr);
        }
        public IShipmentItemMvoState Get(ShipmentItemId id)
        {
            IShipmentItemMvoState state = CurrentSession.Get <ShipmentItemMvoState>(id);

            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <IShipmentItemMvoState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
Пример #4
0
        public virtual IShipmentItemMvoEvent GetEvent(ShipmentItemId shipmentItemId, long version)
        {
            var e = (IShipmentItemMvoEvent)EventStore.GetEvent(ToEventStoreAggregateId(shipmentItemId), version);

            if (e != null)
            {
                e.ReadOnly = true;
            }
            else if (version == -1)
            {
                return(GetEvent(shipmentItemId, 0));
            }
            return(e);
        }
        public async Task <IShipmentItemMvoState> GetHistoryStateAsync(ShipmentItemId shipmentItemId, long version)
        {
            var idObj         = ShipmentItemMvoProxyUtils.ToIdString(shipmentItemId);
            var uriParameters = new ShipmentItemMvoHistoryStateUriParameters();

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

            var req  = new ShipmentItemMvoHistoryStateGetRequest(uriParameters);
            var resp = await _ramlClient.ShipmentItemMvoHistoryState.Get(req);

            ShipmentItemMvoProxyUtils.ThrowOnHttpResponseError(resp);
            return((resp.Content == null) ? null : resp.Content.ToShipmentItemMvoState());
        }
        public async Task <IShipmentItemMvoEvent> GetStateEventAsync(ShipmentItemId shipmentItemId, long version)
        {
            var idObj         = ShipmentItemMvoProxyUtils.ToIdString(shipmentItemId);
            var uriParameters = new ShipmentItemMvoStateEventUriParameters();

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

            var req  = new ShipmentItemMvoStateEventGetRequest(uriParameters);
            var resp = await _ramlClient.ShipmentItemMvoStateEvent.Get(req);

            ShipmentItemMvoProxyUtils.ThrowOnHttpResponseError(resp);
            return(resp.Content);
        }
        public IShipmentItemState Get(ShipmentItemId id, bool nullAllowed)
        {
            IShipmentItemState state = CurrentSession.Get <ShipmentItemState>(id);

            if (!nullAllowed && state == null)
            {
                state = new ShipmentItemState();
                (state as ShipmentItemState).ShipmentItemId = id;
            }
            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <IShipmentItemState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
        public async Task <IShipmentItemMvoState> GetAsync(ShipmentItemId shipmentItemId)
        {
            IShipmentItemMvoState state = null;
            var idObj         = ShipmentItemMvoProxyUtils.ToIdString(shipmentItemId);
            var uriParameters = new ShipmentItemMvoUriParameters();

            uriParameters.Id = idObj;

            var req = new ShipmentItemMvoGetRequest(uriParameters);

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

            ShipmentItemMvoProxyUtils.ThrowOnHttpResponseError(resp);
            state = (resp.Content == null) ? null : resp.Content.ToShipmentItemMvoState();
            return(state);
        }
Пример #9
0
 public abstract IEventStoreAggregateId ToEventStoreAggregateId(ShipmentItemId aggregateId);
Пример #10
0
        public virtual IShipmentItemMvoState GetHistoryState(ShipmentItemId shipmentItemId, long version)
        {
            var eventStream = EventStore.LoadEventStream(typeof(IShipmentItemMvoEvent), ToEventStoreAggregateId(shipmentItemId), version - 1);

            return(new ShipmentItemMvoState(eventStream.Events));
        }
Пример #11
0
        public virtual IShipmentItemMvoState Get(ShipmentItemId shipmentItemId)
        {
            var state = StateRepository.Get(shipmentItemId, true);

            return(state);
        }
Пример #12
0
        public virtual IShipmentItemState GetShipmentItem(string shipmentId, string shipmentItemSeqId)
        {
            var entityId = new ShipmentItemId(shipmentId, shipmentItemSeqId);

            return(CurrentSession.Get <ShipmentItemState>(entityId));
        }
 public IShipmentItemMvoState Get(ShipmentItemId shipmentItemId)
 {
     return(GetAsync(shipmentItemId).GetAwaiter().GetResult());
 }
 public virtual IShipmentItemMvoState GetHistoryState(ShipmentItemId shipmentItemId, long version)
 {
     return(GetHistoryStateAsync(shipmentItemId, version).GetAwaiter().GetResult());
 }
 public IShipmentItemMvoEvent GetEvent(ShipmentItemId shipmentItemId, long version)
 {
     return(GetStateEventAsync(shipmentItemId, version).GetAwaiter().GetResult());
 }
Пример #16
0
 public ShipmentItemMvoEventId(ShipmentItemId shipmentItemId, long shipmentVersion)
 {
     this._shipmentItemId  = shipmentItemId;
     this._shipmentVersion = shipmentVersion;
 }
Пример #17
0
 public override IEventStoreAggregateId ToEventStoreAggregateId(ShipmentItemId aggregateId)
 {
     return(new EventStoreAggregateId(aggregateId));
 }