예제 #1
0
        public override EventStream LoadEventStream(Type eventType, IEventStoreAggregateId eventStoreAggregateId, long version)
        {
            Type supportedEventType = typeof(UserPermissionMvoStateEventBase);

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

            criteria.Add(Restrictions.Eq("StateEventId.UserPermissionIdUserId", idObj.UserId));
            criteria.Add(Restrictions.Eq("StateEventId.UserPermissionIdPermissionId", idObj.PermissionId));
            criteria.Add(Restrictions.Le("StateEventId.UserVersion", version));
            criteria.AddOrder(Order.Asc("StateEventId.UserVersion"));
            var es = criteria.List <IEvent>();

            foreach (UserPermissionMvoStateEventBase e in es)
            {
                e.StateEventReadOnly = true;
            }
            return(new EventStream()
            {
                SteamVersion = es.Count > 0 ? ((UserPermissionMvoStateEventBase)es.Last()).StateEventId.UserVersion : default(long),
                Events = es
            });
        }
        public static string ToIdString(UserPermissionId id)
        {
            var formatter = new UserPermissionIdFlattenedDtoFormatter();
            var idDto     = new UserPermissionIdFlattenedDto(id);
            var idStr     = formatter.ToString(idDto);

            return(idStr);
        }
예제 #3
0
        public IUserPermissionMvoState Get(UserPermissionId id)
        {
            IUserPermissionMvoState state = CurrentSession.Get <UserPermissionMvoState>(id);

            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <IUserPermissionMvoState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
        public IUserPermissionMvoState Get(UserPermissionId id)
        {
            IUserPermissionMvoState state = CurrentSession.Get <UserPermissionMvoState> (id);

            if (state == null)
            {
                state = new UserPermissionMvoState();
                (state as UserPermissionMvoState).UserPermissionId = id;
            }
            return(state);
        }
        public virtual IUserPermissionMvoEvent GetEvent(UserPermissionId userPermissionId, long version)
        {
            var e = (IUserPermissionMvoEvent)EventStore.GetEvent(ToEventStoreAggregateId(userPermissionId), version);

            if (e != null)
            {
                e.ReadOnly = true;
            }
            else if (version == -1)
            {
                return(GetEvent(userPermissionId, 0));
            }
            return(e);
        }
        public async Task <IUserPermissionMvoStateEvent> GetStateEventAsync(UserPermissionId userPermissionId, long version)
        {
            var idObj         = UserPermissionMvoProxyUtils.ToIdString(userPermissionId);
            var uriParameters = new UserPermissionMvoStateEventUriParameters();

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

            var req  = new UserPermissionMvoStateEventGetRequest(uriParameters);
            var resp = await _ramlClient.UserPermissionMvoStateEvent.Get(req);

            UserPermissionMvoProxyUtils.ThrowOnHttpResponseError(resp);
            return(resp.Content);
        }
예제 #7
0
        public IUserPermissionMvoState Get(UserPermissionId id, bool nullAllowed)
        {
            IUserPermissionMvoState state = CurrentSession.Get <UserPermissionMvoState> (id);

            if (!nullAllowed && state == null)
            {
                state = new UserPermissionMvoState();
                (state as UserPermissionMvoState).UserPermissionId = id;
            }
            if (ReadOnlyProxyGenerator != null && state != null)
            {
                return(ReadOnlyProxyGenerator.CreateProxy <IUserPermissionMvoState>(state, new Type[] {  }, _readOnlyPropertyNames));
            }
            return(state);
        }
        public async Task <IUserPermissionMvoState> GetAsync(UserPermissionId userPermissionId)
        {
            IUserPermissionMvoState state = null;
            var idObj         = UserPermissionMvoProxyUtils.ToIdString(userPermissionId);
            var uriParameters = new UserPermissionMvoUriParameters();

            uriParameters.Id = idObj;

            var req = new UserPermissionMvoGetRequest(uriParameters);

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

            UserPermissionMvoProxyUtils.ThrowOnHttpResponseError(resp);
            state = resp.Content;
            return(state);
        }
예제 #9
0
 public UserPermissionMvoEventId(UserPermissionId userPermissionId, long userVersion)
 {
     this._userPermissionId = userPermissionId;
     this._userVersion      = userVersion;
 }
        public virtual IUserPermissionState GetUserPermission(string userId, string permissionId)
        {
            var entityId = new UserPermissionId(userId, permissionId);

            return(CurrentSession.Get <UserPermissionState>(entityId));
        }
 public abstract IEventStoreAggregateId ToEventStoreAggregateId(UserPermissionId aggregateId);
        public virtual IUserPermissionMvoState GetHistoryState(UserPermissionId userPermissionId, long version)
        {
            var eventStream = EventStore.LoadEventStream(typeof(IUserPermissionMvoEvent), ToEventStoreAggregateId(userPermissionId), version - 1);

            return(new UserPermissionMvoState(eventStream.Events));
        }
        public virtual IUserPermissionMvoState Get(UserPermissionId userPermissionId)
        {
            var state = StateRepository.Get(userPermissionId, true);

            return(state);
        }
 public override IEventStoreAggregateId ToEventStoreAggregateId(UserPermissionId aggregateId)
 {
     return(new EventStoreAggregateId(aggregateId));
 }
 public IUserPermissionMvoStateEvent GetStateEvent(UserPermissionId userPermissionId, long version)
 {
     return(GetStateEventAsync(userPermissionId, version).GetAwaiter().GetResult());
 }
 public IUserPermissionMvoState Get(UserPermissionId userPermissionId)
 {
     return(GetAsync(userPermissionId).GetAwaiter().GetResult());
 }