Esempio n. 1
0
        public async Task <IActionResult> GetUsersList(GetUsersListRequest request)
        {
            var users = _mongoDbService.GetCollection <ApplicationUser>(Collections.Users).AsQueryable();
            var roles = _mongoDbService.GetCollection <ApplicationRole>(Collections.Roles).AsQueryable();

            if (!string.IsNullOrWhiteSpace(request.RoleId))
            {
                users = users.Where(x => x.Roles.Contains(request.RoleId));
            }

            if (!string.IsNullOrWhiteSpace(request.SearchQuery))
            {
                users = users.Where(x =>
                                    x.FullName.ToLower().Contains(request.SearchQuery.ToLower().Trim()) ||
                                    x.Address.ToLower().Contains(request.SearchQuery.ToLower().Trim()) ||
                                    x.Email.ToLower().Contains(request.SearchQuery.ToLower().Trim()));
            }

            var totalItemCount = await users.CountAsync();

            var usersList = await users
                            .ApplyOrdering(request.SortBy, request.SortDesc)
                            .ApplyPaging(request.Page, request.PageSize)
                            .ToListAsync();

            var rolesList = await roles
                            .ToListAsync();

            var resources = new PagedListResource()
            {
                TotalItemCount = totalItemCount,
                ItemsList      = usersList
                                 .Select(item =>
                {
                    var roleId = item.Roles.First();
                    var role   = rolesList.FirstOrDefault(r => r.Id.ToString().Equals(roleId));
                    return(new
                    {
                        item.Id,
                        item.FullName,
                        item.Address,
                        item.PhoneNumber,
                        item.Email,
                        item.Enabled,
                        Role = new
                        {
                            role.Id,
                            Name = role.Name.ToUpper()
                        }
                    });
                })
                                 .ToList()
            };

            return(new SuccessResult(resources));
        }
Esempio n. 2
0
        public void GetUserList()
        {
            try
            {
                GetUsersListRequest  request  = null;
                GetUsersListResponse response = null;

                request  = new GetUsersListRequest();
                response = _userService.GetUserList(request);
                Assert.IsTrue(response.IsSucess && response.Users != null && response.Users.Count > 0);

                request = new GetUsersListRequest()
                {
                    SearchValue = "hy", SearchProperty = "Name"
                };
                response = _userService.GetUserList(request);
                Assert.IsTrue(response.IsSucess && response.Users != null && response.Users.Count > 0);
            }
            catch (Exception ex)
            {
                Assert.IsTrue(false);
            }
        }
Esempio n. 3
0
        public GetUsersListResponse GetUserList(GetUsersListRequest request)
        {
            GetUsersListResponse response = new GetUsersListResponse();

            try
            {
                using (IUnitOfWork unitOfWork = RepositoryFactory.GetUnitOfWork())
                {
                    if (request == null)
                    {
                        throw new Exception("null Input!");
                    }

                    IUserRepository userRepository = RepositoryFactory.Get(typeof(IUserRepository), unitOfWork) as IUserRepository;
                    IRoleRepository roleRepository = RepositoryFactory.Get(typeof(IRoleRepository), unitOfWork) as IRoleRepository;
                    List <Role>     roles          = roleRepository.GetAll().ToList();
                    List <User>     list           = null;

                    if (request.SearchProperty != null && request.SearchProperty != string.Empty)
                    {
                        if (typeof(User).GetProperty(request.SearchProperty) != null)
                        {
                            list = userRepository.GetAll().Where(LambdaConstruct.ParameterPropertyEqualConstant <User>(request.SearchProperty, request.SearchValue)).ToList();
                        }
                        else
                        {
                            throw new Exception("no SearchProperty in GetUserlist of Userservice!");
                        }
                    }
                    else
                    {
                        list = userRepository.GetAll().ToList();
                    }

                    if (list == null)
                    {
                        throw new Exception("no User in GetUserList of UserService!");
                    }

                    response.Users = new List <ViewModels.UserView>();
                    foreach (var item in list)
                    {
                        Role role = roles.Where(it => it.Id == item.RoleId).FirstOrDefault();
                        if (role == null)
                        {
                            throw new Exception("no Role in GetUserList of UserService!");
                        }
                        else
                        {
                            ViewModels.UserView useView = new ViewModels.UserView()
                            {
                                Id       = item.Id.ToString(),
                                Name     = item.Name,
                                Password = item.Password,
                                Duty     = item.Duty,
                                Email    = item.Email,
                                RoleId   = item.RoleId,
                                RoleName = role.Name
                            };
                            response.Users.Add(useView);
                        }
                    }
                    response.IsSucess = true;
                }
            }
            catch (Exception ex)
            {
                Log.Write(ex.Message);
                response.IsSucess = false;
                response.Message  = ex.Message;
            }
            return(response);
        }