Пример #1
0
        private static LambdaExpression GetSingleSoftDeleteDddFilter <TEntity>(IUserId userIdProvider)
            where TEntity : class, ISingleSoftDeletedDDD
        {
            Expression <Func <TEntity, bool> > filter = x => !x.SoftDeleted;

            return(filter);
        }
Пример #2
0
        private static LambdaExpression GetSingleSoftDeleteAndUserIdFilter <TEntity>(IUserId userIdProvider)
            where TEntity : class, IUserId, ISingleSoftDelete
        {
            Expression <Func <TEntity, bool> > filter = x => x.UserId == userIdProvider.UserId && !x.SoftDeleted;

            return(filter);
        }
        private static LambdaExpression GetCascadeSoftDeleteFilter <TEntity>(IUserId userIdProvider)
            where TEntity : class, ICascadeSoftDelete
        {
            Expression <Func <TEntity, bool> > filter = x => x.SoftDeleteLevel == 0;

            return(filter);
        }
Пример #4
0
        }                                                                                       //#I

        private static LambdaExpression GetSoftDeleteFilter <TEntity>(                          //#J
            IUserId userIdProvider)                                                             //#J
            where TEntity : class, ISoftDelete                                                  //#J
        {                                                                                       //#J
            Expression <Func <TEntity, bool> > filter =                                         //#J
                                                        x => !x.SoftDeleted;                    //#J

            return(filter);                                                                     //#J
        }
        /// <summary>
        /// Loads the user from Slack.
        /// </summary>
        /// <param name="id">User ID to be loaded.</param>
        private async Task Load(IUserId id)
        {
            var user = await _slack.Users.GetUserAsync(id);

            if (user != null)
            {
                await Initialize(user);
            }
        }
Пример #6
0
        private static LambdaExpression GetUserIdFilter <TEntity>(                              //#I
            IUserId userIdProvider)                                                             //#I
            where TEntity : class, IUserId                                                      //#I
        {                                                                                       //#I
            Expression <Func <TEntity, bool> > filter =                                         //#I
                                                        x => x.UserId == userIdProvider.UserId; //#I

            return(filter);                                                                     //#I
        }                                                                                       //#I
        private static LambdaExpression GetCascadeAndSingleAndUserIdFilter <TEntity>(IUserId userIdProvider)
            where TEntity : class, ICascadeSoftDelete, ISingleSoftDelete, IUserId
        {
            Expression <Func <TEntity, bool> > filter = x => x.SoftDeleteLevel == 0 &&
                                                        !x.SoftDeleted &&
                                                        x.UserId == userIdProvider.UserId;

            return(filter);
        }
        private static LambdaExpression GetUserIdFilter <TEntity>(
            IUserId userIdProvider)
            where TEntity : class, IUserId
        {
            Expression <Func <TEntity, bool> > filter =
                x => x.UserId == userIdProvider.UserId;

            return(filter);
        }
        public static void AddSoftDeleteQueryFilter(
            this IMutableEntityType entityData,
            MyQueryFilterTypes queryFilterType,
            IUserId userIdProvider = null)
        {
            var methodName   = $"Get{queryFilterType}Filter";
            var methodToCall = typeof(SoftDeleteQueryExtensions)
                               .GetMethod(methodName,
                                          BindingFlags.NonPublic | BindingFlags.Static)
                               .MakeGenericMethod(entityData.ClrType);
            var filter = methodToCall
                         .Invoke(null, new object[] { userIdProvider });

            entityData.SetQueryFilter((LambdaExpression)filter);
        }
Пример #10
0
        /// <summary>
        /// Gets a Slack user in the current team based on the user's ID.
        /// </summary>
        /// <param name="id">User ID to be found.</param>
        /// <returns>User data if the ID was found, null otherwise.</returns>
        /// <remarks>This will always pull from local cache if available.</remarks>
        public async Task <User> GetUserAsync(IUserId id)
        {
            // try to find the user in local cache first
            var user = _database.FindWithChildren <User>(id.GetUserId());

            // if the user wasn't found, pull it from the server and cache it.
            if (user == null)
            {
                var request  = new GetUserRequest(id);
                var response = await _restClient.RequestAsync <GetUserResponse>(request);

                // TODO: Should be checking response.OK to make sure it succeeded, and handle the error if it didn't

                user = response.User;
            }

            return(user);
        }
Пример #11
0
        /// <summary>
        /// Gets a Slack user in the current team based on the user's ID.
        /// </summary>
        /// <param name="id">User ID to be found.</param>
        /// <returns>User data if the ID was found, null otherwise.</returns>
        /// <remarks>This will always pull from local cache if available.</remarks>
        public async Task<User> GetUserAsync(IUserId id)
        {
            // try to find the user in local cache first
            var user = _database.FindWithChildren<User>(id.GetUserId());

            // if the user wasn't found, pull it from the server and cache it.
            if (user == null)
            {
                var request = new GetUserRequest(id);
                var response = await _restClient.RequestAsync<GetUserResponse>(request);

                // TODO: Should be checking response.OK to make sure it succeeded, and handle the error if it didn't

                user = response.User;
            }

            return user;
        }
Пример #12
0
        public static void AddSoftDeleteQueryFilter(                                    //#C
            this IMutableEntityType entityData,                                         //#D
            MyQueryFilterTypes queryFilterType,                                         //#E
            IUserId userIdProvider = null)                                              //#F
        {
            var methodName   = $"Get{queryFilterType}Filter";                           //#G
            var methodToCall = typeof(SoftDeleteQueryExtensions)                        //#G
                               .GetMethod(methodName,                                   //#G
                                          BindingFlags.NonPublic | BindingFlags.Static) //#G
                               .MakeGenericMethod(entityData.ClrType);                  //#G
            var filter = methodToCall                                                   //#G
                         .Invoke(null, new object[] { userIdProvider });                //#G

            entityData.SetQueryFilter((LambdaExpression)filter);                        //#H
            if (queryFilterType == MyQueryFilterTypes.SoftDelete)
            {
                entityData.AddIndex(entityData.FindProperty(nameof(ISoftDelete.SoftDeleted)));
            }
            if (queryFilterType == MyQueryFilterTypes.UserId)
            {
                entityData.AddIndex(entityData.FindProperty(nameof(IUserId.UserId)));
            }
        }
Пример #13
0
 public EntityHistoryStore(ICommandRepository <IEntityHistory, int> repository, ISerializer serializer, IUserId currentUser)
 {
     _repository  = repository;
     _serializer  = serializer;
     _currentUser = currentUser;
 }
Пример #14
0
 public GetUserRequest(IUserId id)
     : base("users.info")
 {
     AddQueryString("user", id.GetUserId());
 }
Пример #15
0
 protected virtual IEntityHistory CreateHistoryRecord(StoreHistoryAttribute attribute, IEntityGuid entity, CommandTypeOption type, IUserId user, string data)
 {
     return(new EntityHistory(attribute.EntityTypeId, type, entity.Guid, user.Id, data));
 }
 /// <summary>
 /// Loads the user from Slack.
 /// </summary>
 /// <param name="id">User ID to be loaded.</param>
 private async Task Load(IUserId id)
 {
     var user = await _slack.Users.GetUserAsync(id);
     if (user != null)
     {
         await Initialize(user);
     }
 }
Пример #17
0
 public static Task AddToRolesAsync(this UserManager <IdentityUser, int> userManager, IUserId user, Enum roles)
 {
     return(AddToRolesAsync(userManager, user.UserId, roles));
 }
Пример #18
0
        public static void SetSingleQueryFilter(this IMutableEntityType entityData,
                                                SingleQueryFilterTypes queryFilterType, IUserId userIdProvider = null)
        {
            var methodName   = $"Get{queryFilterType}Filter";
            var methodToCall = typeof(SingleQueryFilterExtensions)
                               .GetMethod(methodName,
                                          BindingFlags.NonPublic | BindingFlags.Static)
                               .MakeGenericMethod(entityData.ClrType);
            var filter = methodToCall
                         .Invoke(null, new object[] { userIdProvider });

            entityData.SetQueryFilter((LambdaExpression)filter);
            if (queryFilterType == SingleQueryFilterTypes.SingleSoftDelete ||
                queryFilterType == SingleQueryFilterTypes.SingleSoftDeleteDdd)
            {
                entityData.AddIndex(entityData.FindProperty(nameof(ISingleSoftDelete.SoftDeleted)));
            }
            if (queryFilterType == SingleQueryFilterTypes.SingleSoftDeleteAndUserId)
            {
                entityData.AddIndex(entityData.FindProperty(nameof(IUserId.UserId)));
            }
        }