Beispiel #1
0
        public async Task <ApplicationUser[]> GetUsers([FromBody] GetUsersModel getUsers)
        {
            try
            {
                var maxResults = getUsers.MaxResults > 0 ? getUsers.MaxResults : 100;

                if (string.IsNullOrEmpty(getUsers.SearchString))
                {
                    var users = await DbContext.Users
                                .Take(getUsers.MaxResults).ToArrayAsync();

                    return(users);
                }
                else
                {
                    var searchString = getUsers.SearchString.Normalize();

                    var users = await DbContext.Users.Where(c =>
                                                            c.Email.Normalize().Contains(searchString) ||
                                                            c.FirstName.Normalize().Contains(searchString) ||
                                                            c.LastName.Normalize().Contains(searchString))
                                .Take(maxResults).ToArrayAsync();

                    return(users);
                }
            } catch (Exception ex)
            {
                throw new AdminControllerException($"Error getting users: {ex.Message}", ex);
            }
        }
Beispiel #2
0
        /// <summary>
        ///     The method to get all users in database.
        /// </summary>
        /// <returns> Variable of the string type with data of the User model. </returns>
        public string GetUsers(GetUsersModel data)
        {
            if (data.id != "5e53b6871c9d440000527bc4")
            {
                return("{\"error\": \"Have_to_be_admin\"}");
            }
            if (data.id == "")
            {
                return("{\"error\": \"Id_not_found\"}");
            }

            FilterDefinitionBuilder <Models.User> builder = new FilterDefinitionBuilder <Models.User>();
            FilterDefinition <Models.User>        filter  = builder.Empty;
            List <Models.User> users = Collection.Find(filter).ToListAsync().Result;

            string answer    = "[";
            int    index     = 0;
            int    lastIndex = users.Count - 1;

            foreach (Models.User user in users)
            {
                answer += "{" +
                          $"\"id\": \"{user._id}\", " +
                          $"\"login\": \"{user.login}\", " +
                          $"\"email\": \"{user.email}\"" +
                          $"}}{(lastIndex != index ? ',' : ' ')}";
                index++;
            }
            answer += "]";

            return(answer);
        }
Beispiel #3
0
        public ActionResult GetUsers()
        {
            GetUsersModel model = new GetUsersModel
            {
                UserList = UserManager.Users.ToList()
            };

            return(View(model));
        }
Beispiel #4
0
        public async Task <PagedData <UserModel> > GetUsersAsync(GetUsersModel model)
        {
            var query = _context.AppUsers.AsQueryable();

            if (!string.IsNullOrWhiteSpace(model.Search))
            {
                query = query.Where(i => i.Account.UserName.Contains(model.Search));
            }
            switch (model.SortBy)
            {
            case "email":
                query = model.Descending ? query.OrderByDescending(i => i.Account.Email) : query.OrderBy(i => i.Account.Email);
                break;

            case "userName":
                query = model.Descending ? query.OrderByDescending(i => i.Account.UserName) : query.OrderBy(i => i.Account.UserName);
                break;

            case "id":
                query = model.Descending ? query.OrderByDescending(i => i.Account.Id) : query.OrderBy(i => i.Account.Id);
                break;
            }
            var count = await query.AsNoTracking().CountAsync();

            if (model.PageSize != default)
            {
                query = query.Skip((model.Page - 1) * model.PageSize);
            }

            if (model.PageSize != default)
            {
                query = query.Take(model.PageSize);
            }

            query = query.Include(i => i.Account).ThenInclude(i => i.Roles).ThenInclude(i => i.Role);
            var users = await query.AsNoTracking().ToListAsync();

            return(new PagedData <UserModel>
            {
                Items = users.Select(i => new UserModel(i)),
                TotalCount = count,
                Page = model.Page,
                PageSize = model.PageSize
            });
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            CleanupInput();
            SubmitButton.Content = "Dodaj użytkownika";

            if (e.Parameter != null)
            {
                GetUsersModel m = JsonConvert.DeserializeObject <GetUsersModel>((string)e.Parameter);

                IsEditMode           = true;
                UserID               = m.Id;
                activity.Visibility  = Visibility.Visible;
                SubmitButton.Content = "Edytuj użytkownika";

                username.Text            = m.UserName;
                password.Password        = string.Empty;
                passwordconfirm.Password = string.Empty;
                if (m.Name != null)
                {
                    name.Text = m.Name;
                }
                else if (m.Surname != null)
                {
                    surname.Text = m.Surname;
                }
                email.Text         = m.Email;
                activity.IsChecked = m.Active;
                if (m.Role == "User")
                {
                    usertype.SelectedIndex = 0;
                }
                else
                {
                    usertype.SelectedIndex = 1;
                }
            }
            base.OnNavigatedTo(e);
        }
Beispiel #6
0
        public GetUsersModel GetUsers()
        {
            Stopwatch stopWatch = new Stopwatch();

            stopWatch.Start();

            GetUsersModel result = new GetUsersModel
            {
                Users = context.Users.ToList().Select(user =>
                {
                    return(new UserModel
                    {
                        UserId = user.UserId,
                        UserName = user.Username
                    });
                }).ToList(),
            };

            stopWatch.Stop();
            result.SecondsElapsed = stopWatch.Elapsed.TotalSeconds;

            return(result);
        }
Beispiel #7
0
        /// <summary>
        /// Applies the roles filter.
        /// </summary>
        /// <param name="query">The query.</param>
        /// <param name="model">The model.</param>
        /// <returns>Query with roles filter applied</returns>
        private IQueryable <Models.User> ApplyRolesFilter(IQueryable <Models.User> query, GetUsersModel model)
        {
            if (model.FilterByRoles != null && model.FilterByRoles.Any(role => !string.IsNullOrWhiteSpace(role)))
            {
                var predicate = (model.FilterByRolesConnector == FilterConnector.Or)
                    ? PredicateBuilder.False <Models.User>()
                    : PredicateBuilder.True <Models.User>();

                foreach (var roleName in model.FilterByRoles)
                {
                    if (!string.IsNullOrWhiteSpace(roleName))
                    {
                        Expression <Func <Models.User, bool> > whereClause = user => user.UserRoles.Any(userRole => userRole.Role.Name == roleName && !userRole.Role.IsDeleted);
                        if (model.FilterByRolesConnector == FilterConnector.Or)
                        {
                            predicate = predicate.Or(whereClause);
                        }
                        else
                        {
                            predicate = predicate.And(whereClause);
                        }
                    }
                }

                query = query.Where(predicate);
            }

            return(query);
        }