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

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

            criteria.Add(Restrictions.Eq("ProductCategoryMemberEventId.ProductCategoryMemberIdProductCategoryId", idObj.ProductCategoryId));
            criteria.Add(Restrictions.Eq("ProductCategoryMemberEventId.ProductCategoryMemberIdProductId", idObj.ProductId));
            criteria.Add(Restrictions.Le("ProductCategoryMemberEventId.Version", version));
            criteria.AddOrder(global::NHibernate.Criterion.Order.Asc("ProductCategoryMemberEventId.Version"));
            var es = criteria.List <IEvent>();

            foreach (ProductCategoryMemberEventBase e in es)
            {
                e.EventReadOnly = true;
            }
            return(new EventStream()
            {
                SteamVersion = es.Count > 0 ? ((ProductCategoryMemberEventBase)es.Last()).ProductCategoryMemberEventId.Version : default(long),
                Events = es
            });
        }
示例#2
0
        public static string ToIdString(ProductCategoryMemberId id)
        {
            var formatter = (new ValueObjectTextFormatter <ProductCategoryMemberId>());
            var idStr     = formatter.ToString(id);

            return(idStr);
        }
示例#3
0
        public IProductCategoryMemberState Get(ProductCategoryMemberId id)
        {
            IProductCategoryMemberState state = CurrentSession.Get <ProductCategoryMemberState>(id);

            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <IProductCategoryMemberState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
示例#4
0
        public async Task <IProductCategoryMemberState> GetHistoryStateAsync(ProductCategoryMemberId productCategoryMemberId, long version)
        {
            var idObj         = ProductCategoryMemberProxyUtils.ToIdString(productCategoryMemberId);
            var uriParameters = new ProductCategoryMemberHistoryStateUriParameters();

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

            var req  = new ProductCategoryMemberHistoryStateGetRequest(uriParameters);
            var resp = await _ramlClient.ProductCategoryMemberHistoryState.Get(req);

            ProductCategoryMemberProxyUtils.ThrowOnHttpResponseError(resp);
            return((resp.Content == null) ? null : resp.Content.ToProductCategoryMemberState());
        }
示例#5
0
        public async Task <IProductCategoryMemberEvent> GetStateEventAsync(ProductCategoryMemberId productCategoryMemberId, long version)
        {
            var idObj         = ProductCategoryMemberProxyUtils.ToIdString(productCategoryMemberId);
            var uriParameters = new ProductCategoryMemberStateEventUriParameters();

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

            var req  = new ProductCategoryMemberStateEventGetRequest(uriParameters);
            var resp = await _ramlClient.ProductCategoryMemberStateEvent.Get(req);

            ProductCategoryMemberProxyUtils.ThrowOnHttpResponseError(resp);
            return(resp.Content);
        }
        public IProductCategoryMemberState Get(ProductCategoryMemberId id, bool nullAllowed)
        {
            IProductCategoryMemberState state = CurrentSession.Get <ProductCategoryMemberState> (id);

            if (!nullAllowed && state == null)
            {
                state = new ProductCategoryMemberState();
                (state as ProductCategoryMemberState).ProductCategoryMemberId = id;
            }
            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <IProductCategoryMemberState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
示例#7
0
        public async Task <IProductCategoryMemberState> GetAsync(ProductCategoryMemberId productCategoryMemberId)
        {
            IProductCategoryMemberState state = null;
            var idObj         = ProductCategoryMemberProxyUtils.ToIdString(productCategoryMemberId);
            var uriParameters = new ProductCategoryMemberUriParameters();

            uriParameters.Id = idObj;

            var req = new ProductCategoryMemberGetRequest(uriParameters);

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

            ProductCategoryMemberProxyUtils.ThrowOnHttpResponseError(resp);
            state = (resp.Content == null) ? null : resp.Content.ToProductCategoryMemberState();
            return(state);
        }
示例#8
0
 public virtual IProductCategoryMemberState GetHistoryState(ProductCategoryMemberId productCategoryMemberId, long version)
 {
     return(GetHistoryStateAsync(productCategoryMemberId, version).GetAwaiter().GetResult());
 }
示例#9
0
 public IProductCategoryMemberEvent GetEvent(ProductCategoryMemberId productCategoryMemberId, long version)
 {
     return(GetStateEventAsync(productCategoryMemberId, version).GetAwaiter().GetResult());
 }
示例#10
0
 public IProductCategoryMemberState Get(ProductCategoryMemberId productCategoryMemberId)
 {
     return(GetAsync(productCategoryMemberId).GetAwaiter().GetResult());
 }
示例#11
0
 public override IEventStoreAggregateId ToEventStoreAggregateId(ProductCategoryMemberId aggregateId)
 {
     return(new EventStoreAggregateId(aggregateId));
 }