示例#1
0
        public static string ToIdString(ShipmentItemIssuanceId id)
        {
            var formatter = (new ValueObjectTextFormatter <ShipmentItemIssuanceId>());
            var idStr     = formatter.ToString(id);

            return(idStr);
        }
示例#2
0
        public override EventStream LoadEventStream(Type eventType, IEventStoreAggregateId eventStoreAggregateId, long version)
        {
            Type supportedEventType = typeof(ItemIssuanceMvoEventBase);

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

            criteria.Add(Restrictions.Eq("ItemIssuanceMvoEventId.ShipmentItemIssuanceIdShipmentId", idObj.ShipmentId));
            criteria.Add(Restrictions.Eq("ItemIssuanceMvoEventId.ShipmentItemIssuanceIdItemIssuanceSeqId", idObj.ItemIssuanceSeqId));
            criteria.Add(Restrictions.Le("ItemIssuanceMvoEventId.ShipmentVersion", version));
            criteria.AddOrder(global::NHibernate.Criterion.Order.Asc("ItemIssuanceMvoEventId.ShipmentVersion"));
            var es = criteria.List <IEvent>();

            foreach (ItemIssuanceMvoEventBase e in es)
            {
                e.EventReadOnly = true;
            }
            return(new EventStream()
            {
                SteamVersion = es.Count > 0 ? ((ItemIssuanceMvoEventBase)es.Last()).ItemIssuanceMvoEventId.ShipmentVersion : default(long),
                Events = es
            });
        }
        public IItemIssuanceMvoState Get(ShipmentItemIssuanceId id)
        {
            IItemIssuanceMvoState state = CurrentSession.Get <ItemIssuanceMvoState>(id);

            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <IItemIssuanceMvoState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
示例#4
0
        public async Task <IItemIssuanceMvoState> GetHistoryStateAsync(ShipmentItemIssuanceId shipmentItemIssuanceId, long version)
        {
            var idObj         = ItemIssuanceMvoProxyUtils.ToIdString(shipmentItemIssuanceId);
            var uriParameters = new ItemIssuanceMvoHistoryStateUriParameters();

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

            var req  = new ItemIssuanceMvoHistoryStateGetRequest(uriParameters);
            var resp = await _ramlClient.ItemIssuanceMvoHistoryState.Get(req);

            ItemIssuanceMvoProxyUtils.ThrowOnHttpResponseError(resp);
            return((resp.Content == null) ? null : resp.Content.ToItemIssuanceMvoState());
        }
        public virtual IItemIssuanceMvoEvent GetEvent(ShipmentItemIssuanceId shipmentItemIssuanceId, long version)
        {
            var e = (IItemIssuanceMvoEvent)EventStore.GetEvent(ToEventStoreAggregateId(shipmentItemIssuanceId), version);

            if (e != null)
            {
                e.ReadOnly = true;
            }
            else if (version == -1)
            {
                return(GetEvent(shipmentItemIssuanceId, 0));
            }
            return(e);
        }
示例#6
0
        public async Task <IItemIssuanceMvoEvent> GetStateEventAsync(ShipmentItemIssuanceId shipmentItemIssuanceId, long version)
        {
            var idObj         = ItemIssuanceMvoProxyUtils.ToIdString(shipmentItemIssuanceId);
            var uriParameters = new ItemIssuanceMvoStateEventUriParameters();

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

            var req  = new ItemIssuanceMvoStateEventGetRequest(uriParameters);
            var resp = await _ramlClient.ItemIssuanceMvoStateEvent.Get(req);

            ItemIssuanceMvoProxyUtils.ThrowOnHttpResponseError(resp);
            return(resp.Content);
        }
        public IItemIssuanceState Get(ShipmentItemIssuanceId id, bool nullAllowed)
        {
            IItemIssuanceState state = CurrentSession.Get <ItemIssuanceState>(id);

            if (!nullAllowed && state == null)
            {
                state = new ItemIssuanceState();
                (state as ItemIssuanceState).ShipmentItemIssuanceId = id;
            }
            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <IItemIssuanceState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
示例#8
0
        public async Task <IItemIssuanceMvoState> GetAsync(ShipmentItemIssuanceId shipmentItemIssuanceId)
        {
            IItemIssuanceMvoState state = null;
            var idObj         = ItemIssuanceMvoProxyUtils.ToIdString(shipmentItemIssuanceId);
            var uriParameters = new ItemIssuanceMvoUriParameters();

            uriParameters.Id = idObj;

            var req = new ItemIssuanceMvoGetRequest(uriParameters);

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

            ItemIssuanceMvoProxyUtils.ThrowOnHttpResponseError(resp);
            state = (resp.Content == null) ? null : resp.Content.ToItemIssuanceMvoState();
            return(state);
        }
        public virtual IItemIssuanceMvoState GetHistoryState(ShipmentItemIssuanceId shipmentItemIssuanceId, long version)
        {
            var eventStream = EventStore.LoadEventStream(typeof(IItemIssuanceMvoEvent), ToEventStoreAggregateId(shipmentItemIssuanceId), version - 1);

            return(new ItemIssuanceMvoState(eventStream.Events));
        }
示例#10
0
 public ItemIssuanceMvoEventId(ShipmentItemIssuanceId shipmentItemIssuanceId, long shipmentVersion)
 {
     this._shipmentItemIssuanceId = shipmentItemIssuanceId;
     this._shipmentVersion        = shipmentVersion;
 }
示例#11
0
 public virtual IItemIssuanceMvoState GetHistoryState(ShipmentItemIssuanceId shipmentItemIssuanceId, long version)
 {
     return(GetHistoryStateAsync(shipmentItemIssuanceId, version).GetAwaiter().GetResult());
 }
 public abstract IEventStoreAggregateId ToEventStoreAggregateId(ShipmentItemIssuanceId aggregateId);
示例#13
0
        public virtual IItemIssuanceState GetItemIssuance(string shipmentId, string itemIssuanceSeqId)
        {
            var entityId = new ShipmentItemIssuanceId(shipmentId, itemIssuanceSeqId);

            return(CurrentSession.Get <ItemIssuanceState>(entityId));
        }
示例#14
0
 public IItemIssuanceMvoEvent GetEvent(ShipmentItemIssuanceId shipmentItemIssuanceId, long version)
 {
     return(GetStateEventAsync(shipmentItemIssuanceId, version).GetAwaiter().GetResult());
 }
示例#15
0
 public override IEventStoreAggregateId ToEventStoreAggregateId(ShipmentItemIssuanceId aggregateId)
 {
     return(new EventStoreAggregateId(aggregateId));
 }
示例#16
0
 public IItemIssuanceMvoState Get(ShipmentItemIssuanceId shipmentItemIssuanceId)
 {
     return(GetAsync(shipmentItemIssuanceId).GetAwaiter().GetResult());
 }
        public virtual IItemIssuanceMvoState Get(ShipmentItemIssuanceId shipmentItemIssuanceId)
        {
            var state = StateRepository.Get(shipmentItemIssuanceId, true);

            return(state);
        }