Esempio n. 1
0
        public ActionResult ManageUsers()
        {
            var response = AsyncHelpers.RunSync <JObject>(() => ApiCall.CallApi("api/Admin/GetAllUsers", User, null, true, false, null));

            SearchUserViewModel model = new SearchUserViewModel();

            if (response is Error)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, "Internal Server Error"));
            }
            else
            {
                model = response.GetValue("result").ToObject <SearchUserViewModel>();
            }

            foreach (var user in model.Users)
            {
                user.StatusName = user.IsDeleted ? "Blocked" : "Active";
                //if (user.ProfilePictureUrl == null || user.ProfilePictureUrl == "")
                //    user.ProfilePictureUrl = "UserImages/Default.png";
            }
            model.StatusOptions = Utility.GetUserStatusOptions();

            model.SetSharedData(User);

            //   model.Users = model.Users.OrderByDescending(x => x.Id).ToList();

            return(View(model));
        }
Esempio n. 2
0
        /// <summary>
        /// 添加用户
        /// </summary>
        public async void Add()
        {
            SearchUserViewModel model = new SearchUserViewModel();
            var dialog = ServiceProvider.Instance.Get <IModelDialog>("SearchUserDlg");

            dialog.BindViewModel(model);
            var taskResult = await dialog.ShowDialog();

            if (taskResult)
            {
                var modelList = model.UserModelList.Where(q => q.IsChecked.Equals(true)).ToList();

                if (modelList != null)
                {
                    modelList.ForEach(q =>
                    {
                        if (CaCheUser.FirstOrDefault(t => t.Account.Equals(q.User.Account)) == null)
                        {
                            CaCheUser.Add(new View_GroupUser()
                            {
                                Account   = q.User.Account,
                                GroupCode = Group.GroupCode,
                                UserName  = q.User.UserName
                            });
                        }
                    });
                }
                this.Query(this.SearchText);
            }
        }
Esempio n. 3
0
        /// <summary>
        ///     <inheritdoc />
        /// </summary>
        /// <param name="id"></param>
        /// <param name="model"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public virtual async Task <User> ChangePasswordAsync(int id, ChangePasswordViewModel model,
                                                             CancellationToken cancellationToken = default(CancellationToken))
        {
            #region Find user

            var loadUserCondition = new SearchUserViewModel();
            loadUserCondition.Ids = new HashSet <int> {
                id
            };
            loadUserCondition.Statuses = new HashSet <UserStatus> {
                UserStatus.Available
            };

            var user = await SearchUserAsync(loadUserCondition, cancellationToken);

            if (user == null)
            {
                throw new ApiException(HttpMessages.AccountIsNotFound, HttpStatusCode.NotFound);
            }

            #endregion

            // Hash the curent password.
            var hashedCurrentPassword = _encryptionService.Md5Hash(model.OriginalPassword);
            if (!user.Password.Equals(hashedCurrentPassword, StringComparison.CurrentCultureIgnoreCase))
            {
                throw new ApiException(HttpMessages.CurrentPasswordIsInvalid, HttpStatusCode.Forbidden);
            }

            user.Password = _encryptionService.Md5Hash(model.Password);

            await _unitOfWork.CommitAsync(cancellationToken);

            return(user);
        }
Esempio n. 4
0
        /// <summary>
        ///     Search users using specific conditions.
        /// </summary>
        /// <param name="condition"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public virtual async Task <SearchResult <IList <User> > > SearchUsersAsync(SearchUserViewModel condition,
                                                                                   CancellationToken cancellationToken = default(CancellationToken))
        {
            var users = GetUsers(condition);

            // Sort by properties.
            if (condition.Sort != null)
            {
                users =
                    _relationalDbService.Sort(users, condition.Sort.Direction,
                                              condition.Sort.Property);
            }
            else
            {
                users = _relationalDbService.Sort(users, SortDirection.Decending,
                                                  UserSort.JoinedTime);
            }

            // Result initialization.
            var loadUsersResult = new SearchResult <IList <User> >();

            loadUsersResult.Total = await users.CountAsync(cancellationToken);

            loadUsersResult.Records = await _relationalDbService.Paginate(users, condition.Pagination)
                                      .ToListAsync(cancellationToken);

            return(loadUsersResult);
        }
Esempio n. 5
0
        public async Task <IHttpActionResult> Search([FromBody] SearchUserViewModel condition)
        {
            if (condition == null)
            {
                condition = new SearchUserViewModel();
                Validate(condition);
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // Ids are defined.
            if (condition.Ids != null)
            {
                condition.Ids = condition.Ids.Where(x => x > 0).ToHashSet();
            }

            // Last names are defined.
            if (condition.LastNames != null)
            {
                condition.LastNames = condition.LastNames.Where(x => !string.IsNullOrEmpty(x)).ToHashSet();
            }

            // First names are defined.
            if (condition.FirstNames != null)
            {
                condition.FirstNames = condition.FirstNames.Where(x => !string.IsNullOrEmpty(x)).ToHashSet();
            }

            // Get request profile.
            var profile = _profileService.GetProfile(Request);

            // User is anonymous or ordinary.
            if (profile == null || profile.Role != UserRoles.Admin)
            {
                condition.Statuses = new HashSet <UserStatuses>();
                condition.Statuses.Add(UserStatuses.Active);
            }
            else
            {
                // Statuses are defined.
                if (condition.Statuses != null)
                {
                    condition.Statuses =
                        condition.Statuses.Where(x => Enum.IsDefined(typeof(UserRoles), x)).ToHashSet();
                }

                // Roles are defined.
                if (condition.Roles != null)
                {
                    condition.Roles = condition.Roles.Where(x => Enum.IsDefined(typeof(UserRoles), x)).ToHashSet();
                }
            }

            var searchResult = await _userService.GetUsersAsync(condition);

            return(Ok(searchResult));
        }
        public void RenderTheRightViewWithTheCorrectModel_SearchUserViewModelAndNoModelErrorsAndCorrectContent()
        {
            //Arrange
            var    usersServiceMock   = new Mock <IUsersService>();
            var    mappingServiceMock = new Mock <IMappingService>();
            var    controller         = new UsersController(usersServiceMock.Object, mappingServiceMock.Object);
            string id = Guid.NewGuid().ToString();

            var user = new UserViewModel()
            {
                Id       = id,
                Username = "******",
                Email    = "*****@*****.**",
                Role     = "User"
            };

            var users = new List <UserViewModel>()
            {
                user
            };

            var searchModel = new SearchUserViewModel()
            {
                PageSize     = 5,
                TotalRecords = users.Count,
                Users        = users
            };

            //Act & Assert
            controller.WithCallTo(x => x.Index())
            .ShouldRenderView("Index")
            .WithModel <SearchUserViewModel>(
                viewModel => Assert.AreEqual(users.ToList()[0].Username, searchModel.Users.ToList()[0].Username))
            .AndNoModelErrors();
        }
Esempio n. 7
0
        public JsonResult Search(SearchUserViewModel model)
        {
            JSonResult objResult = new JSonResult();

            try
            {
                BE.MUser        MUser  = new BE.MUser();
                List <BE.MUser> MUsers = new List <BE.MUser>();

                MUser.User = Extension.ToEmpty(model.User).Trim();
                MUser.Name = Extension.ToEmpty(model.UserName).Trim();

                MUsers = new WebApiUser().GetUsers(MUser);

                objResult.data = MUsers;
            }
            catch (Exception ex)
            {
                objResult.data    = null;
                objResult.isError = true;
                objResult.message = string.Format(MessageResource.ControllerGetExceptionMessage, "User");
            }

            return(Json(objResult));
        }
        public IEnumerable <UserViewModel> SearchUsers(SearchUserViewModel SearchUser)
        {
            List <User> Users = DbContext.Users.Where(e => e.Email == SearchUser.Email).ToList();

            IEnumerable <UserViewModel> _users = Mapper.Map <IEnumerable <UserViewModel> >(Users);

            return(_users);
        }
Esempio n. 9
0
        public void CallFriendService_GetAllUserFriendsIdsOnce_WhenUserIdIsNotEmpty()
        {
            // Arrange
            var mockedMapperService = new Mock <IMapperService>();
            var mappedUser          = new SearchUserViewModel();

            mockedMapperService.Setup(x => x.MapObject <SearchUserViewModel>(It.IsAny <CustomUser>())).Returns(mappedUser);
            var mockedImageService = new Mock <IImageService>();

            mockedImageService.Setup(x => x.ByteArrayToImageUrl(It.IsAny <byte[]>())).Returns("some-url");
            var mockedUserService = new Mock <IUserService>();
            var user = new CustomUser()
            {
                Id = 1
            };

            mockedUserService.Setup(x => x.GetByIndentityId(It.IsAny <string>())).Returns(user);
            var mockedFriendService = new Mock <IFriendService>();

            mockedFriendService.Setup(x => x.GetAllUserFriendsIds(It.IsAny <int>())).Returns(new List <int>());

            var viewModelService = new ViewModelService(
                mockedMapperService.Object,
                mockedImageService.Object,
                mockedUserService.Object,
                mockedFriendService.Object);
            var users = new List <CustomUser>()
            {
                new CustomUser()
                {
                    ProfileImage = new ProfileImage()
                    {
                        Content = new byte[] { 1, 2 }
                    }
                },
                new CustomUser()
                {
                    ProfileImage = new ProfileImage()
                    {
                        Content = new byte[] { 1, 2 }
                    }
                },
                new CustomUser()
                {
                    ProfileImage = new ProfileImage()
                    {
                        Content = new byte[] { 1, 2 }
                    }
                }
            };
            string userId = "user-xx-id";

            // Act
            viewModelService.GetMappedSearchedUsers(users, userId);

            // Assert
            mockedFriendService.Verify(x => x.GetAllUserFriendsIds(It.Is <int>(i => i == user.Id)), Times.Once);
        }
Esempio n. 10
0
        /// <summary>
        ///     Get users using specific conditions.
        /// </summary>
        /// <param name="condition"></param>
        /// <returns></returns>
        protected virtual IQueryable <User> GetUsers(SearchUserViewModel condition)
        {
            // Get all users.
            var users = _unitOfWork.Accounts.Search();

            // Id have been defined.
            var ids = condition.Ids;

            if (ids != null && ids.Count > 0)
            {
                ids = ids.Where(x => x > 0).ToHashSet();
                if (ids != null && ids.Count > 0)
                {
                    users = users.Where(x => condition.Ids.Contains(x.Id));
                }
            }

            // Email have been defined.
            var emails = condition.Emails;

            if (emails != null && emails.Count > 0)
            {
                emails = emails.Where(x => !string.IsNullOrEmpty(x)).ToHashSet();
                if (emails != null && emails.Count > 0)
                {
                    users = users.Where(x => condition.Emails.Any(y => x.Email.Contains(y)));
                }
            }

            // Statuses have been defined.
            var statuses = condition.Statuses;

            if (statuses != null && statuses.Count > 0)
            {
                statuses =
                    statuses.Where(x => Enum.IsDefined(typeof(UserStatus), x)).ToHashSet();
                if (statuses.Count > 0)
                {
                    users = users.Where(x => condition.Statuses.Contains(x.Status));
                }
            }

            // Roles have been defined.
            var roles = condition.Roles;

            if (condition.Roles != null && condition.Roles.Count > 0)
            {
                roles =
                    roles.Where(x => Enum.IsDefined(typeof(UserRole), x)).ToHashSet();
                if (roles.Count > 0)
                {
                    users = users.Where(x => roles.Contains(x.Role));
                }
            }

            return(users);
        }
Esempio n. 11
0
        public IActionResult Search(string userNameSubstr)
        {
            SearchUserViewModel model = new SearchUserViewModel
            {
                Users = userNameSubstr != String.Empty ? _messenger.GetAllUsersByUserNameSubstring(userNameSubstr) : new List <User>()
            };

            return(View("Search", model));
        }
Esempio n. 12
0
        public ActionResult Search(SearchUserViewModel model)
        {
            if (!ModelState.IsValid || String.IsNullOrEmpty(model.SearchText))
            {
                return(RedirectToAction("Search", "Membership"));
            }

            return(RedirectToAction("Search", "Membership",
                                    new { filter = model.SearchCriteria.ToString(), searchText = model.SearchText }));
        }
Esempio n. 13
0
 public static SearchUserDto ToDto(this SearchUserViewModel source)
 {
     return(new SearchUserDto
     {
         FullName = source.FullName,
         PageNumber = source.PageNumber,
         PageSize = source.PageSize,
         PhoneNumber = source.PhoneNumber,
         Type = (Domain.Enumeration.UserType?)source.Type
     });
 }
Esempio n. 14
0
        public async Task <IHttpActionResult> SearchUser([FromBody] SearchUserViewModel model)
        {
            if (model == null)
            {
                model = new SearchUserViewModel();
                Validate(model);
            }

            var users = await _userDomain.SearchUserAsync(model);

            return(Ok(users));
        }
Esempio n. 15
0
        public ActionResult Search(string filter, string searchText, int?Page)
        {
            int page = Page ?? 1;
            SearchUserViewModel model = new SearchUserViewModel();

            try
            {
                // TODO : Better to move paging to the Manager project.
                // Otherwise, cache the IEnumerable<ApplicationUser> so that
                // the entire collection does not have to be re-queried when changing page.
                Result <IEnumerable <ApplicationUser> > result = new Result <IEnumerable <ApplicationUser> >();

                if (String.IsNullOrEmpty(searchText) || !Enum.GetNames(typeof(SearchUserEnum)).Contains(filter))
                {
                    // Show all accounts
                    model.SearchHeading = "Showing all accounts";
                    result = userService.GetAllUsers();
                }
                else
                {
                    // Filter accounts
                    model.SearchCriteria = (SearchUserEnum)Enum.Parse(typeof(SearchUserEnum), filter);
                    model.SearchText     = searchText;
                    model.SearchHeading  = "Showing accounts with " + filter + " containing \"" + searchText + "\"";
                    result = userService.GetUsersByFilter(model.SearchCriteria, searchText);
                }

                switch (result.Status)
                {
                case ResultEnum.Success:
                    IEnumerable <ApplicationUser> pagedList = result.Data.ToPagedList <ApplicationUser>(page, 10);

                    model.PagedList  = pagedList;
                    model.PagedUsers = GetPagedUsers(pagedList);

                    return(View(model));

                case ResultEnum.Fail:
                    break;

                default:
                    break;
                }
            }
            catch
            {
                ModelState.AddModelError("ErrorMessage", "Fail");
                return(View(model));
            }

            ModelState.AddModelError("ErrorMessage", "Fail");
            return(View(model));
        }
Esempio n. 16
0
        /// <summary>
        ///     <inheritdoc />
        /// </summary>
        /// <param name="id"></param>
        /// <param name="model"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public virtual async Task <User> ChangeUserStatus(int id, ChangeUserStatusViewModel model,
                                                          CancellationToken cancellationToken = default(CancellationToken))
        {
            #region Find user

            var loadUserCondition = new SearchUserViewModel();
            loadUserCondition.Ids = new HashSet <int> {
                id
            };

            var user = await SearchUserAsync(loadUserCondition, cancellationToken);

            if (user == null)
            {
                throw new ApiException(HttpMessages.AccountIsNotFound, HttpStatusCode.NotFound);
            }

            #endregion

            #region Update user status

            // Whether information has been changed or not.
            var bHasInformationChanged = false;

            // Status has been defined.
            if (model.Status != user.Status)
            {
                if (model.Status == UserStatus.Pending)
                {
                    user.Status            = UserStatus.Disabled;
                    bHasInformationChanged = true;
                }
                else
                {
                    user.Status            = model.Status;
                    bHasInformationChanged = true;
                }
            }

            //todo: Reason

            // Information has been changed.
            if (!bHasInformationChanged)
            {
                throw new NotModifiedException();
            }

            #endregion

            await _unitOfWork.CommitAsync(cancellationToken);

            return(user);
        }
Esempio n. 17
0
 private IQueryable <ApplicationUser> GetUsers(SearchUserViewModel model, int pageNumber, int usersPageSize = UsersPageSize)
 {
     return(this.Data.Users.All()
            .Where(u => !model.UserLevelId.HasValue || u.UserLevelId == model.UserLevelId)
            .Where(u => model.Gender == 0 || u.Gender == model.Gender)
            .Where(u => model.Country == null || u.Addresses.Any(a => a.Country == model.Country))
            .Where(u => model.Town == null || u.Addresses.Any(a => a.Town == model.Town))
            .Where(u => model.State == null || u.Addresses.Any(a => a.State == model.State))
            .Where(u => u.Id != this.UserId)
            .OrderBy(u => u.Id)
            .Skip((pageNumber - 1) * usersPageSize)
            .Take(usersPageSize));
 }
Esempio n. 18
0
        public void CallImageService_ByteArrayToImageUrlUsersCountTimes()
        {
            // Arrange
            var mockedMapperService = new Mock <IMapperService>();
            var mappedUser          = new SearchUserViewModel();

            mockedMapperService.Setup(x => x.MapObject <SearchUserViewModel>(It.IsAny <CustomUser>())).Returns(mappedUser);
            var mockedImageService = new Mock <IImageService>();

            mockedImageService.Setup(x => x.ByteArrayToImageUrl(It.IsAny <byte[]>())).Returns("some-url");
            var mockedUserService   = new Mock <IUserService>();
            var mockedFriendService = new Mock <IFriendService>();

            var viewModelService = new ViewModelService(
                mockedMapperService.Object,
                mockedImageService.Object,
                mockedUserService.Object,
                mockedFriendService.Object);
            var users = new List <CustomUser>()
            {
                new CustomUser()
                {
                    ProfileImage = new ProfileImage()
                    {
                        Content = new byte[] { 1, 2 }
                    }
                },
                new CustomUser()
                {
                    ProfileImage = new ProfileImage()
                    {
                        Content = new byte[] { 1, 2 }
                    }
                },
                new CustomUser()
                {
                    ProfileImage = new ProfileImage()
                    {
                        Content = new byte[] { 1, 2 }
                    }
                }
            };

            // Act
            viewModelService.GetMappedSearchedUsers(users, string.Empty);

            // Assert
            mockedImageService.Verify(x => x.ByteArrayToImageUrl(It.IsAny <byte[]>()), Times.Exactly(users.Count));
        }
Esempio n. 19
0
        /// <summary>
        /// <inheritdoc />
        /// </summary>
        /// <param name="id"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task DeleteUserAsync(int id, CancellationToken cancellationToken = default(CancellationToken))
        {
            // Find users.
            var loadUserCondition = new SearchUserViewModel();

            loadUserCondition.Ids = new HashSet <int>();
            loadUserCondition.Ids.Add(id);

            var user = await GetUserAsync(loadUserCondition, cancellationToken);

            if (user == null)
            {
                throw new Exception(HttpMessages.UserNotFound);
            }

            user.Status = UserStatuses.Disabled;
            await _unitOfWork.CommitAsync();
        }
Esempio n. 20
0
        /// <summary>
        /// <inheritdoc />
        /// </summary>
        /// <param name="id"></param>
        /// <param name="model"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public virtual async Task <User> EditUserAsync(int id, EditUserViewModel model, CancellationToken cancellationToken = default(CancellationToken))
        {
            //Find user
            var loadUserCondition = new SearchUserViewModel();

            loadUserCondition.Ids = new HashSet <int>();
            loadUserCondition.Ids.Add(id);

            var user = await GetUserAsync(loadUserCondition, cancellationToken);

            if (user == null)
            {
                throw new Exception(HttpMessages.UserNotFound);
            }

            if (!string.IsNullOrEmpty(model.FirstName))
            {
                user.FirstName = model.FirstName;
            }

            if (!string.IsNullOrEmpty(model.LastName))
            {
                user.LastName = model.LastName;
            }

            if (model.Birthday != null)
            {
                user.Birthday = model.Birthday.Value;
            }

            // Photo is defined. Save photo to path.
            if (model.Photo != null)
            {
                var relativeProfileImagePath = await _fileService.AddFileToDirectory(model.Photo.Buffer,
                                                                                     _appPath.ProfileImage, null, CancellationToken.None);

                user.Photo = _urlHelper.Content(relativeProfileImagePath);
            }

            //Save to database
            await _unitOfWork.CommitAsync();

            return(user);
        }
Esempio n. 21
0
        public ActionResult ManageUser(SearchUserViewModel model)
        {
            BreadCrumb.Clear();
            BreadCrumb.Add(Url.Action("Index", "Home"), "Home");
            BreadCrumb.Add(Url.Action("ManageUser", "Home"), "Manage User");

            var pageIndex = 1;

            if (!string.IsNullOrEmpty(model.SearchButton) || model.Page.HasValue)
            {
                pageIndex           = model.Page ?? 1;
                model.SearchResults = _unitOfWork.UserProfile.GetAll()
                                      .Select(u => new UserInfoListViewModel()
                {
                    UserName  = u.UserName,
                    FirstName = u.FirstName,
                    LastName  = u.LastName,
                    Email     = u.Email,
                    Phone     = u.Phone
                }).Where(c => (c.LastName.StartsWith(model.LastName) || string.IsNullOrEmpty(model.LastName)) &&
                         (c.Email.StartsWith(model.Email) || string.IsNullOrEmpty(model.Email)))
                                      .OrderBy(o => o.LastName)
                                      .ToPagedList(pageIndex, 15);
            }
            else
            {
                model.SearchResults = _unitOfWork.UserProfile.GetAll()
                                      .Select(u => new UserInfoListViewModel()
                {
                    UserName  = u.UserName,
                    FirstName = u.FirstName,
                    LastName  = u.LastName,
                    Email     = u.Email,
                    Phone     = u.Phone
                }).Where(c => (c.LastName.StartsWith(model.LastName) || string.IsNullOrEmpty(model.LastName)) &&
                         (c.Email.StartsWith(model.Email) || string.IsNullOrEmpty(model.Email)))
                                      .OrderBy(o => o.LastName)
                                      .ToPagedList(pageIndex, 15);
            }
            return(Request.IsAjaxRequest()
                ? (ActionResult)PartialView("_UserInfo", model)
                : View("ManageUser", "_AdsLayout1", model));
        }
Esempio n. 22
0
        public async Task <IHttpActionResult> GetProfile([FromUri] int?id)
        {
            // Get profile from request.
            var profile = _profileService.GetProfile(Request);

            // No profile is found.
            if (id == null || id < 1)
            {
                if (profile == null)
                {
                    return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.NotFound,
                                                                       HttpMessages.ProfileNotFound)));
                }

                profile.Password    = null;
                profile.AccessToken = null;
                return(Ok(profile));
            }

            // Find profile.
            var conditions = new SearchUserViewModel();

            conditions.Ids = new HashSet <int>();
            conditions.Ids.Add(id.Value);

            if (profile.Role != UserRoles.Admin)
            {
                conditions.Statuses = new HashSet <UserStatuses>();
                conditions.Statuses.Add(UserStatuses.Active);
            }

            // Find the first matched record.
            var user = await _userService.GetUserAsync(conditions);

            if (user == null)
            {
                return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.NotFound,
                                                                   HttpMessages.ProfileNotFound)));
            }

            return(Ok(user));
        }
Esempio n. 23
0
        public async Task <ActionResult <List <SearchUserViewModel> > > SearchForUser(string username)
        {
            List <SearchUserViewModel> userVm = new List <SearchUserViewModel>();
            List <User> user = await _context.Users.Where(u => u.Username.StartsWith(username)).ToListAsync();

            if (user == null)
            {
                return(BadRequest());
            }

            foreach (User usr in user)
            {
                SearchUserViewModel vm = new SearchUserViewModel();
                vm.UserId   = usr.Id;
                vm.Username = usr.Username;

                userVm.Add(vm);
            }

            return(userVm);
        }
Esempio n. 24
0
        public IActionResult SearchUsers(string q)
        {
            if (string.IsNullOrEmpty(q))
            {
                ViewBag.Message = "Please provide a keyword for searching";
            }
            ViewBag.SearchQuery = q;
            var model=  _accountClient.SerachUsers(q);
            var currentUserId = HttpContext.User.Identity.Name;

            var list = new List<SearchUserViewModel>();
            foreach (var item in model)
            {
                var viewModel = new SearchUserViewModel(_accountClient);
                viewModel.User = item;
                viewModel.GetRelationship(currentUserId);
                list.Add(viewModel);
            }

            if(!list.Any()) ViewBag.Message = "Not found";
            return View(list);
        }
        public ActionResult Index()
        {
            var users = this.usersService.GetAllUsersWithRoles()
                        .Select(u =>
                                new UserViewModel
            {
                Username = u.UserName,
                Email    = u.Email,
                Role     = u.Roles.First().RoleId.Equals("0") ? "Admin" : "User"
            })
                        .ToList();

            var searchModel = new SearchUserViewModel();

            if (users != null)
            {
                searchModel.Users        = users;
                searchModel.PageSize     = gridPageSize;
                searchModel.TotalRecords = users.Count();
            }

            return(this.View(searchModel));
        }
Esempio n. 26
0
        public ActionResult Search(SearchUserViewModel model, int?pageNumber)
        {
            var page = pageNumber.GetValueOrDefault(1);

            ViewBag.UserLevelId  = new SelectList(this.Data.UserLevels.All().ToList(), "Id", "Level", model.UserLevelId);
            ViewBag.SelectedPage = page;

            if (ModelState.IsValid)
            {
                var currenlyLoggedUser = string.IsNullOrEmpty(this.UserId) ? 0 : 1;

                var users      = this.GetUsers(model, page).Select(UserViewModel.FromUsers).ToList();
                var usersCount = this.GetUsers(model, 1, int.MaxValue).Count();
                ViewBag.UserPages = Math.Ceiling((decimal)usersCount / UsersPageSize);

                var searchResultViewModel = new SearchResultViewModel {
                    SearchUserViewModel = model, UserViewModel = users
                };

                return(View("SearchResultTennisPlayer", searchResultViewModel));
            }

            return(View("Index", model));
        }
Esempio n. 27
0
        public async Task <IActionResult> Index(SearchUserViewModel searchUserViewModel = null, int currentPage = 1, string sortOrder = null)
        {
            ViewBag.CurrentSort       = sortOrder;
            ViewBag.SortPossibilities = new Dictionary <string, string>()
            {
                { "id", "asc" },
                { "username", "asc" },
                { "email", "asc" },
                { "registrationdate", "asc" },
                { "lastlogindate", "asc" }
            };
            ControllerUtils.ManageSortingPossibilities(ViewBag.SortPossibilities, sortOrder);

            if (searchUserViewModel == null)
            {
                searchUserViewModel = new SearchUserViewModel();
            }

            if (currentPage < 1 || currentPage > 999)
            {
                return(View(searchUserViewModel));
            }
            UserViewModel userViewModel;
            const int     pageSize           = 10;
            int           currentRecordIndex = (currentPage - 1) * pageSize;
            var           userViewModels     = new List <UserViewModel>();

            UserCriteria userCriteria = null;

            if (!string.IsNullOrWhiteSpace(searchUserViewModel.UserId))
            {
                if (userCriteria == null)
                {
                    userCriteria = new UserCriteria();
                }
                userCriteria.Id = new StringCriteria();
                userCriteria.Id.StartsWithList = new List <string>()
                {
                    searchUserViewModel.UserId
                };
            }
            if (!string.IsNullOrWhiteSpace(searchUserViewModel.UserName))
            {
                if (userCriteria == null)
                {
                    userCriteria = new UserCriteria();
                }
                userCriteria.UserName = new StringCriteria();
                userCriteria.UserName.StartsWithList = new List <string>()
                {
                    searchUserViewModel.UserName
                };
            }

            ApplyUserSort(ref userCriteria, sortOrder);

            int totalRecords;
            var users = _usersService.FindUsers(out totalRecords, userCriteria, true, currentRecordIndex, pageSize);

            if (users != null)
            {
                ApplicationUser appUser;
                bool            emailConfirmed;
                foreach (var user in users)
                {
                    appUser = await _identityUserManager.FindByIdAsync(user.Id);

                    emailConfirmed = appUser != null && appUser.EmailConfirmed;

                    userViewModel = new UserViewModel()
                    {
                        Id               = user.Id,
                        Name             = user.Name,
                        Email            = user.Email,
                        RegistrationDate = user.RegistrationDate,
                        LastLoginDate    = user.LastLoginDate,
                        Suspended        = user.Suspended,
                        EmailConfirmed   = emailConfirmed
                    };
                    if (user.Role != null)
                    {
                        userViewModel.RoleId   = user.Role.Id;
                        userViewModel.RoleName = user.Role.Name;
                    }
                    userViewModels.Add(userViewModel);
                }
            }

            ViewBag.Users        = userViewModels;
            ViewBag.CurrentPage  = currentPage;
            ViewBag.PageSize     = pageSize;
            ViewBag.TotalRecords = totalRecords;

            //Security
            if (currentRecordIndex > totalRecords)
            {
                ViewBag.CurrentPage = 1;
            }

            return(View(searchUserViewModel));
        }
Esempio n. 28
0
        /// <summary>
        /// <inheritdoc />
        /// </summary>
        /// <param name="condition"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public virtual async Task <SearchResultViewModel <IList <User> > > GetUsersAsync(SearchUserViewModel condition, CancellationToken cancellationToken = default(CancellationToken))
        {
            var users = FindUsers(condition);

            // Initialize search result.
            var searchResult = new SearchResultViewModel <IList <User> >();

            // Count total users.
            searchResult.Total = await users.CountAsync(cancellationToken);

            // Get pagination information.
            var pagination = condition.Pagination;

            users = _dbService.Paginate(users, pagination);

            searchResult.Records = await users.ToListAsync(cancellationToken);

            return(searchResult);
        }
Esempio n. 29
0
 /// <summary>
 /// <inheritdoc />
 /// </summary>
 /// <param name="condition"></param>
 /// <param name="cancellationToken"></param>
 /// <returns></returns>
 public virtual async Task <User> GetUserAsync(SearchUserViewModel condition, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(await FindUsers(condition).FirstOrDefaultAsync(cancellationToken));
 }
Esempio n. 30
0
        /// <summary>
        /// Search users by using specific conditions.
        /// </summary>
        /// <param name="condition"></param>
        /// <returns></returns>
        protected virtual IQueryable <User> FindUsers(SearchUserViewModel condition)
        {
            // Get list of users.
            var users = _unitOfWork.Users.Search();

            // Ids are defined.
            if (condition.Ids != null)
            {
                var ids = condition.Ids.Where(c => c > 0).ToList();
                if (ids.Count > 0)
                {
                    users = users.Where(c => condition.Ids.Contains(c.Id));
                }
            }

            // Last names are defined.
            if (condition.LastNames != null)
            {
                var lastNames = condition.LastNames.Where(c => !string.IsNullOrEmpty(c)).ToList();
                if (lastNames.Count > 0)
                {
                    users = users.Where(c => lastNames.Contains(c.LastName));
                }
            }

            // First names are defined.
            if (condition.FirstNames != null)
            {
                var firstNames = condition.FirstNames.Where(c => !string.IsNullOrEmpty(c)).ToList();
                if (firstNames.Count > 0)
                {
                    users = users.Where(c => firstNames.Contains(c.FirstName));
                }
            }

            // Birthday range is defined.
            if (condition.Birthday != null)
            {
                var birthday = condition.Birthday;
                if (birthday.From != null)
                {
                    users = users.Where(c => c.Birthday >= birthday.From);
                }

                if (birthday.To != null)
                {
                    users = users.Where(user => user.Birthday <= birthday.To);
                }
            }

            // Statuses are defined.
            if (condition.Statuses != null)
            {
                var statuses = condition.Statuses.Where(x => Enum.IsDefined(typeof(UserRoles), x)).ToList();
                if (statuses.Count > 0)
                {
                    users = users.Where(x => statuses.Contains(x.Status));
                }
            }

            // Roles are defined.
            if (condition.Roles != null)
            {
                var roles = condition.Roles.Where(x => Enum.IsDefined(typeof(UserRoles), x)).ToList();
                if (roles.Count > 0)
                {
                    users = users.Where(x => roles.Contains(x.Role));
                }
            }

            return(users);
        }