コード例 #1
0
        private async Task LoadUsers(UsersSearchRequest request = null)
        {
            var userEntities = await _usersService.Get <List <Model.Models.User> >(request);

            allUsersDataGrid.AutoGenerateColumns = false;
            allUsersDataGrid.DataSource          = userEntities;
        }
コード例 #2
0
        public ActionResult GetUserMessageList(QueryUsersConditionView conditions)
        {
            var req = new UsersSearchRequest
            {
                UserName         = conditions.ContainsUserName,
                UserStateId      = conditions.SearchUserStateId,
                CurrentPageIndex = conditions.CurrentPageIndex
            };
            var resp       = _adminUserService.GetSearchUsersBy(req);
            var resultView = new UserSeachResultView();
            var allUserStateSelectedList = GetAllUserStatesSelectListDataSource();//获取所有的用户状态SelectList集合

            if (resp.Succeed)
            {
                SetAllUsersStateSelectedListToViewData(allUserStateSelectedList); //设置用户状态下拉列表的数据源到ViewData
                resultView.Users          = resp.Users;                           //设置显示分页数据源
                resultView.PaginatorModel = new PaginatorModel {
                    TotalPages = resp.TotalPages, CurrentPageIndex = conditions.CurrentPageIndex
                };
            }
            else
            {
                return(Json(new { color = StyleConstants.RedColor, message = resp.Message }, JsonRequestBehavior.AllowGet));
            }
            return(PartialView("ListUserMessagePartial", resultView));
        }
コード例 #3
0
        public UsersSearchResponse GetUsersSearchResponse(UsersSearchRequest searchRequest)
        {
            int fromRow = (searchRequest.PageNo - 1) * searchRequest.PageSize;
            int toRow   = searchRequest.PageSize;
            var key     = searchRequest.DomainKey;
            Expression <Func <AspNetUser, bool> > query =
                s =>
                (
                    searchRequest.Name == null || s.FirstName.Contains(searchRequest.Name) || s.LastName.Contains(searchRequest.Name)) &&
                (searchRequest.Username == null || s.UserName.Contains(searchRequest.Username)) &&
                (searchRequest.Email == null || s.Email.Contains(searchRequest.Email)) &&
                (searchRequest.UserRole == "SystemAdministrator" && s.AspNetRoles.All(x => x.Name == "Admin") || s.AspNetRoles.All(x => x.Name == "Client")
                );

            IEnumerable <AspNetUser> users = searchRequest.IsAsc
                ? DbSet
                                             .Where(query)
                                             .OrderBy(orderClause[searchRequest.OrderByColumn])
                                             .Skip(fromRow)
                                             .Take(toRow)
                                             .ToList()
                : DbSet
                                             .Where(query)
                                             .OrderByDescending(orderClause[searchRequest.OrderByColumn])
                                             .Skip(fromRow)
                                             .Take(toRow)
                                             .ToList();

            return(new UsersSearchResponse {
                Users = users, TotalCount = DbSet.Count(query), FilteredCount = DbSet.Count(query)
            });
        }
コード例 #4
0
        public IEnumerable <UserListItem> Search(UsersSearchRequest request)
        {
            // Returns IEnumerable instead IQueryable because
            // filter and Sorting on User Role cannot be translated to SQL

            //Build Query
            var query = _userRepo.FindAll()
                        .AsNoTracking()
                        .IgnoreQueryFilters()
                        .Where(q => !q.IsDeleted);

            if (request.OrganizationId != null)
            {
                query = query.Where(q => q.OrganizationId == request.OrganizationId);
            }

            if (request.CustomerId != null)
            {
                query = query.Where(q => q.Customers.Any(c => c.CustomerId == (int)request.CustomerId));
            }

            if (request.DivisionId != null) //TODO: check if query by DivisionId is correct
            {
                query = query.Where(q => q.Customers.Any(c => c.Customer.Divisions.Any(d => d.Id == (int)request.DivisionId)));
            }

            return(query.ProjectTo <UserListItem>(Mapper.ConfigurationProvider).ToList());
        }
コード例 #5
0
 void DealWithContainsUserName(UsersSearchRequest req, IList <Func <User, bool> > ps)
 {
     if (!string.IsNullOrEmpty(req.UserName))
     {
         ps.Add(m => m.UserName.Contains(req.UserName));
     }
 }
コード例 #6
0
 void DealWithEqualsUserStateId(UsersSearchRequest req, IList <Func <User, bool> > ps)
 {
     if (req.UserStateId > 0)
     {
         ps.Add(m => m.StateId == req.UserStateId);
     }
 }
コード例 #7
0
        SearchUserResponse IAdminUserService.GetSearchUsersBy(UsersSearchRequest req)
        {
            var resp = new SearchUserResponse();
            IEnumerable <User>         users = new List <User>();
            IList <Func <User, bool> > ps    = new List <Func <User, bool> >();

            try
            {
                DealWithContainsUserName(req, ps);
                DealWithEqualsUserStateId(req, ps);
                var numberOfResultsPrePage = ApplicationSettingsFactory.GetApplicationSettings().NumberOfResultsPrePage;//获取每页记录数
                users = _userDAL.FindBy(ps, req.CurrentPageIndex, numberOfResultsPrePage);

                if (HasNoSearchResult(users))
                {
                    resp.Message = NoRecordsMessage;
                }
                else
                {
                    resp.TotalResultCount = _userDAL.GetCountByContains(ps);
                    resp.Users            = users.ConvertToUsersInfoViewList();
                    resp.Succeed          = true;
                }
            }
            catch (Exception ex)
            {
                resp.Message = "搜索用户列表信息发生错误";
                Log(ex);
            }
            return(resp);
        }
コード例 #8
0
        public dynamic SearchUsersByName(DBC dbc, UsersSearchRequest request, List <string> errors)
        {
            Shared.SearchByName searchByName = new Shared.SearchByName();

            string firstName = !string.IsNullOrWhiteSpace(request.FirstName) ?
                               request
                               .FirstName
                               .ToLower()
                               .Replace(" ", "") :
                               string.Empty;

            string lastName = !string.IsNullOrEmpty(request.LastName) ?
                              request
                              .LastName
                              .ToLower()
                              .Replace(" ", "") :
                              string.Empty;

            if (!string.IsNullOrWhiteSpace(firstName) &&
                !string.IsNullOrWhiteSpace(lastName))
            {
                if (dbc
                    .Users
                    .Where(x => x.FirstName == firstName &&
                           x.LastName == lastName)
                    .Any())
                {
                    return(dbc
                           .Users
                           .Where(x => x.FirstName == firstName &&
                                  x.LastName == lastName)
                           .ToList());
                }
                else
                {
                    errors.Add($"No users found with a first name of '{request.FirstName}' and a last name of '{request.LastName}'.");

                    return(errors);
                }
            }
            else if (!string.IsNullOrWhiteSpace(firstName) &&
                     string.IsNullOrWhiteSpace(lastName))
            {
                return(searchByName.SearchEntitiesByName(dbc, "Users", "FirstName", firstName, errors));
            }
            else if (string.IsNullOrWhiteSpace(firstName) &&
                     !string.IsNullOrWhiteSpace(lastName))
            {
                return(searchByName.SearchEntitiesByName(dbc, "Users", "LastName", lastName, errors));
            }
            else
            {
                errors.Add("No users found.");
            }

            return(errors);
        }
コード例 #9
0
        private async void SearchBtn_Click(object sender, EventArgs e)
        {
            var searchRequest = new UsersSearchRequest()
            {
                SearchTerm        = searchTextBox.Text,
                ShowDisabledUsers = disabledUsersCheckBox.Checked
            };

            await LoadUsers(searchRequest);
        }
コード例 #10
0
        private async void btnShow_Click(object sender, EventArgs e)
        {
            var search = new UsersSearchRequest()
            {
                FirstName = txtSearch.Text
            };
            var result = await _apiService.Get <List <Model.Users> >(search);

            dgvUsers.AutoGenerateColumns = false;
            dgvUsers.DataSource          = result;
        }
コード例 #11
0
        private async void btnShow_Click(object sender, EventArgs e)
        {
            UsersSearchRequest searchRequest = new UsersSearchRequest()
            {
                FirstName = txtFilter.Text,
                LastName  = txtFilter.Text
            };

            var list = await _userService.Get <List <Model.User> >(searchRequest);

            dgvUsers.DataSource = list;
        }
コード例 #12
0
        public UsersSearchResponse SearchUser(ISession session, UsersSearchRequest request)
        {
            var response = request.CreateResponse <UsersSearchResponse>();

            using (var uow = UnitOfWorkFactory.Create())
            {
                var users    = uow.UsersRepository.AllMatching(UserSpecification.NameLike(request.QueryString), 20);
                var userDtos = users.ProjectedAsCollection <UserDto>();

                response.Result = userDtos.ToArray();
            }
            return(response);
        }
コード例 #13
0
        public dynamic GetUser(UsersSearchRequest request)
        {
            UserSearchSummary userSearchSummary = new UserSearchSummary();

            if (CheckClientSecret())
            {
                return(userSearchSummary.SearchByUser(request));
            }
            else
            {
                return(new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest));
            }
        }
コード例 #14
0
        public UsersListViewModel Get([FromUri] UsersSearchRequest searchRequest)
        {
            if (searchRequest == null || !ModelState.IsValid)
            {
                throw new HttpException((int)HttpStatusCode.BadRequest, "Invalid Request");
            }
            var response = usersService.GetAllUsers(searchRequest);

            return(new UsersListViewModel
            {
                Data = response.Users.Select(x => x.MapUserFromServerToClient()).ToList(),
                recordsFiltered = response.FilteredCount,
                recordsTotal = response.TotalCount
            });
        }
コード例 #15
0
        public List <Model.User> GetAll(UsersSearchRequest request)
        {
            var query = _rentSiteContext.User.AsQueryable();

            if (!string.IsNullOrWhiteSpace(request?.FirstName) || !string.IsNullOrWhiteSpace(request?.LastName))
            {
                query = query.Where(x => x.FirstName == request.FirstName || x.LastName == request.LastName);
            }

            var entities = query.ToList();

            var result = _mapper.Map <List <Model.User> >(entities);

            return(result);
        }
コード例 #16
0
        public List <Model.Users> Get(UsersSearchRequest request)
        {
            var query = _context.Users.AsQueryable();

            if (!string.IsNullOrWhiteSpace(request?.FirstName))
            {
                query = query.Where(x => x.FirstName.StartsWith(request.FirstName));
            }
            if (!string.IsNullOrWhiteSpace(request?.LastName))
            {
                query = query.Where(x => x.LastName.StartsWith(request.LastName));
            }
            var list = query.ToList();

            return(_mapper.Map <List <Model.Users> >(list));
        }
コード例 #17
0
        public List <Model.Users> Get(UsersSearchRequest request)
        {
            var query = _context.Users.AsQueryable();

            if (!string.IsNullOrWhiteSpace(request?.Search))
            {
                query = query.Where(x => x.Username.Contains(request.Search) ||
                                    x.Email.Contains(request.Search) ||
                                    x.Name.Contains(request.Search) ||
                                    x.LastName.Contains(request.Search)
                                    );
            }

            query = query.Include(x => x.Role);
            var list = query.ToList();

            return(_mapper.Map <List <Model.Users> >(list));
        }
コード例 #18
0
        public async Task <IWrappedResponse> All(UsersSearchRequest request)
        {
            var actions      = new List <ResourceAction>();
            var resourceType = PermissionResourceType.Organization;
            var referenceId  = 0;


            if (request.OrganizationId != null)
            {
                referenceId  = (int)request.OrganizationId;
                resourceType = PermissionResourceType.Organization;
                actions      = Common.Enumerations.ResourceActions.Organization.Admin
                               .Union(Common.Enumerations.ResourceActions.Organization.Standard).Distinct().ToList();
            }
            else if (request.CustomerId != null)
            {
                referenceId  = (int)request.CustomerId;
                resourceType = PermissionResourceType.Customer;
                actions      = Common.Enumerations.ResourceActions.Customer.Admin
                               .Union(Common.Enumerations.ResourceActions.Customer.Standard).Distinct().ToList();
            }
            else if (request.DivisionId != null)
            {
                referenceId  = (int)request.DivisionId;
                resourceType = PermissionResourceType.Division;
                actions      = Common.Enumerations.ResourceActions.Customer.Admin
                               .Union(Common.Enumerations.ResourceActions.Customer.Standard).Distinct().ToList();
            }
            else
            {
                return(Failed <IEnumerable <GroupPermission> >());
            }

            var permissions = actions.Select(action => new GroupPermission()
            {
                Action      = action.ToString(),
                Resource    = resourceType,
                ReferenceId = referenceId
            }).AsEnumerable();

            return(Ok(permissions));
        }
コード例 #19
0
        public async Task <List <User> > Get(UsersSearchRequest search)
        {
            var query = _context.Users.Include(x => x.UserRoles).ThenInclude(x => x.Role).AsQueryable();

            if (search.ShowDisabledUsers)
            {
                query = query.Where(user => user.Archived);
            }

            if (!string.IsNullOrEmpty(search.SearchTerm))
            {
                string term = search.SearchTerm;
                query = query.Where(user => (user.FirstName.StartsWith(term) || user.FirstName.Contains(term)) ||
                                    (user.LastName.StartsWith(term) || user.LastName.Contains(term)) ||
                                    (user.Email.StartsWith(term) || user.Email.Contains(term)) ||
                                    (user.Username.StartsWith(term) || user.Username.Contains(term)));
            }

            var entities = await query.ToListAsync();

            return(_mapper.Map <List <Model.Models.User> >(entities));
        }
コード例 #20
0
 //[HasPermission(typeof(CanReadVoucherRequirement))] TODO User management Permissions
 public Task <ActionResult <IEnumerable <GroupPermission> > > All([FromQuery] UsersSearchRequest request)
 {
     return(this._permissionsService.All(request).Convert <IEnumerable <GroupPermission> >(this));
 }
コード例 #21
0
 public ActionResult <IList <Model.User> > GetAll([FromQuery] UsersSearchRequest request)
 {
     return(_userService.GetAll(request));
 }
コード例 #22
0
        public async Task <IWrappedResponse> All(UsersSearchRequest request)
        {
            var query = Search(request);

            return(Ok(query.AsEnumerable <UserListItem>()));
        }
コード例 #23
0
 public UsersSearchResponse GetAllUsers(UsersSearchRequest searchRequest)
 {
     return(userRepository.GetUsersSearchResponse(searchRequest));
 }
コード例 #24
0
 public Task <UsersSearchResponse> SearchUser(UsersSearchRequest request)
 {
     return(ConnectionManager.SendRequestAndWaitResponse <UsersSearchResponse>(request));
 }
コード例 #25
0
 //[HasPermission(typeof(CanReadVoucherRequirement))] TODO User management Permissions
 public Task <ActionResult <IEnumerable <UserListItem> > > All([FromQuery] UsersSearchRequest request)
 {
     return(this._userService.All(request).Convert <IEnumerable <UserListItem> >(this));
 }
コード例 #26
0
 //[HasPermission(typeof(CanReadVoucherRequirement))] TODO User management Permissions
 public object Get([FromQuery] UsersSearchRequest request, DataSourceLoadOptions loadOptions)
 {
     return(DataSourceLoader.Load(_userService.Search(request), loadOptions));
 }
コード例 #27
0
 public async Task <List <Model.Models.User> > Get([FromQuery] UsersSearchRequest request)
 {
     return(await _service.Get(request));
 }
コード例 #28
0
        public dynamic SearchByUser(UsersSearchRequest request)
        {
            SearchByID searchByID = new SearchByID();

            SearchByName searchByName = new SearchByName();

            SearchByRegion searchByRegion = new SearchByRegion();

            SearchBySubscriptionType searchBySubscriptionType = new SearchBySubscriptionType();

            SearchByActiveSubscription searchByActiveSubscription = new SearchByActiveSubscription();

            List <string> errors = new List <string>();

            List <User> matchedUsers = new List <User>();

            DBC dbc = DBC.DatabaseConnection();

            if (!string.IsNullOrEmpty(request.UserID))
            {
                return(searchByID.SearchEntitiesByID(dbc, "Users", request.UserID, errors));
            }

            if (!string.IsNullOrWhiteSpace(request.FirstName) ||
                !string.IsNullOrWhiteSpace(request.LastName))
            {
                var result = searchByName.SearchUsersByName(dbc, request, errors);

                if (result.GetType() == typeof(List <User>))
                {
                    matchedUsers = result;
                }
                else
                {
                    foreach (string error in (List <string>)result)
                    {
                        errors.Add(error);
                    }
                }
            }

            if (!string.IsNullOrWhiteSpace(request.Region))
            {
                var result = searchByRegion.SearchUsersByRegion(dbc,
                                                                request.Region,
                                                                errors,
                                                                matchedUsers);

                if (result.GetType() == typeof(List <User>))
                {
                    matchedUsers = result;
                }
                else
                {
                    foreach (string error in (List <string>)result)
                    {
                        errors.Add(error);
                    }
                }
            }

            if (!string.IsNullOrWhiteSpace(request.SubscriptionType))
            {
                var result = searchBySubscriptionType
                             .SearchUsersBySubscriptionType(dbc,
                                                            request.SubscriptionType,
                                                            errors,
                                                            matchedUsers);

                if (result.GetType() == typeof(List <User>))
                {
                    matchedUsers = result;
                }
                else
                {
                    foreach (string error in (List <string>)result)
                    {
                        errors.Add(error);
                    }
                }
            }

            if (request.ActiveSubscription != null)
            {
                var result = searchByActiveSubscription
                             .SearchUsersByActiveSubscription(dbc,
                                                              request.ActiveSubscription,
                                                              errors,
                                                              matchedUsers);

                if (result.GetType() == typeof(List <User>))
                {
                    List <UserDTO> userDTOs = new List <UserDTO>();

                    foreach (User user in result)
                    {
                        userDTOs.Add(new UserDTO(user, dbc));
                    }

                    return(userDTOs);
                }
                else
                {
                    matchedUsers = new List <User>();

                    errors = result;
                }
            }

            if (matchedUsers.Any())
            {
                List <UserDTO> userDTOs = new List <UserDTO>();

                foreach (User user in matchedUsers)
                {
                    userDTOs.Add(new UserDTO(user, dbc));
                }

                return(userDTOs);
            }
            else if (errors.Any())
            {
                return(errors);
            }
            else
            {
                return(new NoParameterUserResponse("No users found. Please check your request for validity against the fields below."));
            }
        }