コード例 #1
0
 public int GetUserForPeriodOfTime(string applicationName, TimeSpan timeSpan)
 {
     return(UsersCollection
            .AsQueryable()
            .Count(user
                   => user.ApplicationName == applicationName &&
                   user.LastActivityDate > DateTime.UtcNow.Subtract(timeSpan)));
 }
コード例 #2
0
        public User GetByEmail(string applicationName, string email)
        {
            if (email.IsNullOrWhiteSpace() || UsersCollection.Count() == 0)
            {
                return(null);
            }

            return(UsersCollection
                   .AsQueryable()
                   .SingleOrDefault(user
                                    => user.ApplicationName == applicationName &&
                                    user.EmailLowercase == email.ToLowerInvariant() &&
                                    user.IsDeleted == false));
        }
コード例 #3
0
        public bool IsUserInRole(string applicationName, string username, string roleName)
        {
            if (username.IsNullOrWhiteSpace() || roleName.IsNullOrWhiteSpace())
            {
                return(false);
            }

            return(UsersCollection
                   .AsQueryable()
                   .Any(user
                        => user.ApplicationName == applicationName &&
                        user.UsernameLowercase == username.ToLowerInvariant() &&
                        (user.Roles.Contains(roleName.ToLowerInvariant()) || user.Roles.Contains(roleName))));
        }
コード例 #4
0
        public string[] GetUsersInRole(string applicationName, string roleName)
        {
            if (roleName.IsNullOrWhiteSpace())
            {
                return(null);
            }

            return(UsersCollection
                   .AsQueryable()
                   .Where(user
                          => user.ApplicationName == applicationName &&
                          (user.Roles.Contains(roleName.ToLowerInvariant()) || user.Roles.Contains(roleName)))
                   .Select(user => user.Username)
                   .ToArray());
        }
コード例 #5
0
        public IEnumerable <User> GetAll(string applicationName, int pageIndex, int pageSize, out int totalRecords)
        {
            totalRecords = (int)UsersCollection.Count();

            if (totalRecords == 0)
            {
                return(Enumerable.Empty <User>());
            }

            return(UsersCollection
                   .AsQueryable()
                   .Where(user
                          => user.ApplicationName == applicationName &&
                          user.IsDeleted == false)
                   .Skip(pageIndex * pageSize)
                   .Take(pageSize));
        }
コード例 #6
0
        public IEnumerable <User> GetAllAnonym(string applicationName, int pageIndex, int pageSize, out int totalRecords)
        {
            if (UsersCollection.Count() == 0)
            {
                totalRecords = 0;
                return(Enumerable.Empty <User>());
            }

            var users = UsersCollection
                        .AsQueryable()
                        .Where(user
                               => user.ApplicationName == applicationName &&
                               user.IsAnonymous &&
                               user.IsDeleted == false);

            totalRecords = users.Count();
            return(users.Skip(pageIndex * pageSize).Take(pageSize));
        }
コード例 #7
0
        public IEnumerable <User> GetAllByUserName(string applicationName, string username, int pageIndex, int pageSize, out int totalRecords)
        {
            if (username.IsNullOrWhiteSpace() || UsersCollection.Count() == 0)
            {
                totalRecords = 0;
                return(Enumerable.Empty <User>());
            }

            var users = UsersCollection
                        .AsQueryable()
                        .Where(user
                               => user.ApplicationName == applicationName &&
                               user.UsernameLowercase.Contains(username.ToLowerInvariant()) &&
                               user.IsDeleted == false);

            totalRecords = users.Count();
            return(users.Skip(pageIndex * pageSize).Take(pageSize));
        }
コード例 #8
0
        public IEnumerable <User> GetAllInactiveSince(string applicationName, DateTime inactiveDate, int pageIndex, int pageSize, out int totalRecords)
        {
            if (UsersCollection.Count() == 0)
            {
                totalRecords = 0;
                return(Enumerable.Empty <User>());
            }

            var users = UsersCollection
                        .AsQueryable()
                        .Where(user
                               => user.ApplicationName == applicationName &&
                               user.LastActivityDate <= inactiveDate &&
                               user.IsDeleted == false);

            totalRecords = users.Count();
            return(users
                   .Skip(pageIndex * pageSize)
                   .Take(pageSize));
        }
コード例 #9
0
        public IEnumerable <User> GetInactiveSinceByUserName(string applicationName, string username, DateTime userInactiveSinceDate, int pageIndex, int pageSize, out int totalRecords)
        {
            if (UsersCollection.Count() == 0)
            {
                totalRecords = 0;
                return(Enumerable.Empty <User>());
            }

            var users = UsersCollection
                        .AsQueryable()
                        .Where(user
                               => user.ApplicationName == applicationName &&
                               user.UsernameLowercase.Contains(username.ToLowerInvariant()) &&
                               user.LastActivityDate <= userInactiveSinceDate &&
                               user.IsDeleted == false);

            totalRecords = users.Count();
            return(users
                   .Skip(pageIndex * pageSize)
                   .Take(pageSize));
        }