Ejemplo n.º 1
0
        public async Task <UserSearchParams> Search(UserSearchResult request)
        {
            string anywhere = $"%{request.Anywhere}%";
            var    query    = userManager.Users
                              .Include(u => u.UserTopics)
                              .ThenInclude(ut => ut.Topic)
                              .Where(u => EF.Functions.Like(u.UserName, anywhere) ||
                                     EF.Functions.Like(u.Email, anywhere));

            if (request.UserName != null)
            {
                query = query.Where(u => EF.Functions.Like(u.UserName, $"%{request.UserName}%"));
            }
            if (request.Email != null)
            {
                query = query.Where(u => EF.Functions.Like(u.Email, $"%{request.Email}%"));
            }
            var count = await query.CountAsync();

            query = query.Skip((request.Page - 1) * request.CountPerPage)
                    .Take(request.CountPerPage);
            var list = await query.Select(u => DbMapper.MapDbUser(u)).ToListAsync();

            return(new UserSearchParams()
            {
                Page = request.Page,
                PageSize = request.CountPerPage,
                PageCount = (int)Math.Ceiling(((float)count) / request.CountPerPage),
                Count = count,
                Users = list,
            });
        }
Ejemplo n.º 2
0
 public async Task <ICollection <User> > GetAllUser()
 {
     return(await userManager.Users
            .Include(u => u.UserTopics)
            .ThenInclude(ut => ut.Topic)
            .Select(u => DbMapper.MapDbUser(u))
            .ToListAsync());
 }
Ejemplo n.º 3
0
        public async Task <User> GetByName(string name)
        {
            var dbUser = await dbcontext.Users
                         .Include(u => u.UserTopics)
                         .ThenInclude(ut => ut.Topic)
                         .FirstOrDefaultAsync(u => u.UserName == name);

            return(DbMapper.MapDbUser(dbUser));
        }
Ejemplo n.º 4
0
 public async Task <ICollection <User> > GetUsersByTopic(Topic topic)
 {
     return(await dbcontext.Users
            .Include(u => u.UserTopics)
            .ThenInclude(ut => ut.Topic)
            .Where(u => u.UserTopics.FirstOrDefault(ut => ut.TopicId == topic.Id) != null)
            .Select(u => DbMapper.MapDbUser(u))
            .ToListAsync());
 }
Ejemplo n.º 5
0
 public async Task <ICollection <User> > GetUsersPaged(int pagenum, int pagesize = 16)
 {
     return(await userManager.Users
            .Include(u => u.UserTopics)
            .ThenInclude(ut => ut.Topic)
            .Select(u => DbMapper.MapDbUser(u))
            .Skip((pagenum - 1) * pagesize)
            .Take(pagesize)
            .ToListAsync());
 }
Ejemplo n.º 6
0
        public async Task <(User, string)> GetPasswordRecoveryToken(string username)
        {
            var dbuser = await dbcontext.Users
                         .Include(u => u.UserTopics)
                         .ThenInclude(ut => ut.Topic)
                         .FirstOrDefaultAsync(u => u.UserName == username);

            if (dbuser == null)
            {
                return(null, null);
            }
            var token = await userManager.GeneratePasswordResetTokenAsync(dbuser);

            return(DbMapper.MapDbUser(dbuser), token);
        }
Ejemplo n.º 7
0
 public async Task <ICollection <User> > List()
 {
     return(await dbcontext.Users.Select(u => DbMapper.MapDbUser(u)).ToListAsync());
 }