public ActionResult <PagedCollectionResponse <UserDto> > GetUsers([FromQuery] UsersFilterModel filter)
        {
            //Get the data for the current page
            var result = new PagedCollectionResponse <UserDto>
            {
                Items = _userService.GetFilteredUsers(filter)
            };

            if (!result.Items.Any())
            {
                return(NoContent());
            }

            //Get next page URL string
            UsersFilterModel nextFilter = filter.Clone() as UsersFilterModel;

            nextFilter.Page += 1;
            string nextUrl = !_userService.GetFilteredUsers(nextFilter).Any()
                ? null
                : Url.Action("GetUsers", null, nextFilter, Request.Scheme);

            //Get previous page URL string
            UsersFilterModel previousFilter = filter.Clone() as UsersFilterModel;

            previousFilter.Page -= 1;
            string previousUrl = previousFilter.Page <= 0
                ? null
                : Url.Action("GetUsers", null, previousFilter, Request.Scheme);

            result.NextPage     = !IsNullOrWhiteSpace(nextUrl) ? new Uri(nextUrl) : null;
            result.PreviousPage = !IsNullOrWhiteSpace(previousUrl) ? new Uri(previousUrl) : null;

            return(Ok(result));
        }
Пример #2
0
        public PartialViewResult UsersData(UsersFilterModel model)
        {
            PagerData pager = new PagerData()
            {
                ItemsPerPage = MvcApplication.ItemsPerPage,
                CurrentPage  = model.Page ?? 1
            };

            IEnumerable <UserViewModel> users;

            if (model.UserName != null)
            {
                string userName = model.UserName.ToLower();
                users = _accountManager.GetUsers(HttpContext.GetOwinContext(), u => u.UserName.ToLower().Contains(userName), pager);
            }
            else
            {
                users = _accountManager.GetUsers(HttpContext.GetOwinContext(), pager);
            }

            UsersListViewModel usersModel = new UsersListViewModel()
            {
                Pager = pager,
                Users = users
            };

            Session["UsersPage"] = pager.CurrentPage;
            return(PartialView(usersModel));
        }
Пример #3
0
        public async Task <IEnumerable <ApplicationUser> > GetUsersAsync(UsersFilterModel usersFilter)
        {
            var users = _applicationContext.Users.AsQueryable();      //get only isn't removed

            if (!string.IsNullOrWhiteSpace(usersFilter.SearchString)) //to lowercase
            {
                users = users.Where(u => u.UserName.ToLower().Equals(usersFilter.SearchString.ToLower()));
            }
            if (usersFilter.UserStatus == UserStatus.Active)
            {
                users = users.Where(u => u.LockoutEnabled);
            }
            if (usersFilter.UserStatus == UserStatus.Blocked)
            {
                users = users.Where(u => !u.LockoutEnabled);
            }
            if (usersFilter.SortBy == SortBy.UserName)
            {
                users = users.OrderBy(u => u.UserName);
            }
            if (usersFilter.SortBy == SortBy.Email)
            {
                users = users.OrderBy(u => u.Email);
            }
            users = users.Skip((usersFilter.PageCount - 1) * usersFilter.PageSize).Take(usersFilter.PageSize);
            return(await users.ToListAsync());
        }
Пример #4
0
        public ActionResult Users(int?page = null, string userName = null)
        {
            UsersFilterModel model = new UsersFilterModel()
            {
                Page     = page,
                UserName = userName
            };

            return(View(model));
        }
Пример #5
0
        public async Task <IActionResult> GetAllAsync(UsersFilterModel model)
        {
            var token = HttpContext.Request.Headers
                        .Where(x => x.Key == JwtConstants.RefreshToken)
                        .Select(x => x.Value).FirstOrDefault();
            var adminId = _jwtHelper.GetIdFromToken(token);
            var users   = await _userService.GetAllAsync(model, adminId);

            return(Ok(users));
        }
        public IEnumerable <UserDto> GetFilteredUsers(UsersFilterModel filterModel)
        {
            //Filtering logic
            var users = _db.Users
                        .Where(u => u.Name.StartsWith(filterModel.Name ??
                                                      Empty, InvariantCultureIgnoreCase))
                        .Skip((filterModel.Page - 1) * filterModel.Limit)
                        .Take(filterModel.Limit);

            return(_mapper.Map <IEnumerable <User>, IEnumerable <UserDto> >(users));
        }
Пример #7
0
        public ActionResult Index(UsersFilterModel usersFilterModel)
        {
            if (usersFilterModel == null)
            {
                usersFilterModel = new UsersFilterModel();
            }
            //var value = OperationUnits[0];

            UserViewModel userViewModel = SetViewModel(usersFilterModel);

            return(View(userViewModel));
        }
Пример #8
0
        public async Task <UserModel> GetUsersAsync(UsersFilterModel usersFilter)
        {
            var users = await _userRepository.GetUsersAsync(usersFilter);

            var resultModel = new UserModel();

            foreach (var user in users)
            {
                resultModel.Items.Add(user.Mapping());
            }
            return(resultModel);
        }
Пример #9
0
        public async Task <UserModel> GetAllAsync(UsersFilterModel model, long adminId)
        {
            var response = new UserModel();

            if (model == null)
            {
                response.Errors.Add(ErrorConstants.ModelIsNull);
                return(response);
            }
            var filterModel      = FilterMapper.MapUserFilteringModel(model);
            var applicationUsers = await _userRepository.GetFilteredAsync(filterModel, adminId);

            var users = new UserModel();

            foreach (var user in applicationUsers.Data)
            {
                var userModelItem = await UpdateStatus(user);

                users.Items.Add(userModelItem);
            }
            users.TotalCount = applicationUsers.TotalItemsCount;
            return(users);
        }
Пример #10
0
        private UserViewModel SetViewModel(UsersFilterModel usersFilterModel)
        {
            int minimumPriceRate = 0, maximumPriceRate = 0;

            if (usersFilterModel.PriceRate != null)
            {
                List <string> rangeValues = usersFilterModel.PriceRate.Split('-').ToList();
                if (rangeValues != null && rangeValues.Count > 0)
                {
                    minimumPriceRate = Convert.ToInt32(rangeValues[0]);
                    maximumPriceRate = Convert.ToInt32(rangeValues[1]);
                }
            }

            int minimumAvgRate = 0, maximumAvgRate = 0;

            if (usersFilterModel.AverageRating != null)
            {
                List <string> rangeValues = usersFilterModel.AverageRating.Split('-').ToList();
                if (rangeValues != null && rangeValues.Count > 0)
                {
                    minimumAvgRate = Convert.ToInt32(rangeValues[0]);
                    maximumAvgRate = Convert.ToInt32(rangeValues[1]);
                }
            }
            int minimumAge = 1, maximumAge = 100;
            int setMaxAgeValue;

            if (!string.IsNullOrEmpty(usersFilterModel.MaxAge) && int.TryParse(usersFilterModel.MaxAge, out setMaxAgeValue))
            {
                maximumAge = setMaxAgeValue;
            }
            int setMinAgeValue;

            if (!string.IsNullOrEmpty(usersFilterModel.MinAge) && int.TryParse(usersFilterModel.MinAge, out setMinAgeValue))
            {
                minimumAge = setMinAgeValue;
            }
            //if (usersFilterModel.AgeRange != null)
            //{
            //    List<string> rangeValues = usersFilterModel.AgeRange.Split('-').ToList();
            //    if (rangeValues != null && rangeValues.Count > 0)
            //    {
            //        minimumAge = Convert.ToInt32(rangeValues[0]);
            //        maximumAge = Convert.ToInt32(rangeValues[1]);
            //    }
            //}


            var userViewModel = new UserViewModel()
            {
                Name              = "Custom Page",
                UserId            = 9,
                UserName          = "******",
                FilterFormDetails = new FilterFormDetails()
                {
                    CanSubmit  = true,
                    FormAction = "/Custom/Index",
                    FormId     = "UserSubmitForm",
                    FormMethod = "Post",
                    FormName   = "UserSubmitForm"
                },
            };
            var userList      = GetUsers();
            var filteredUsers = new List <UserDetailModel>();

            filteredUsers.AddRange(userList);
            filteredUsers       = SetSelectedValues(usersFilterModel, minimumAge, maximumAge, filteredUsers);
            userViewModel.Users = filteredUsers;//GetUsers();


            var customFilters = new List <CustomFilter>()
            {
                new CustomFilter()
                {
                    IconClass            = "-icon-search",
                    ControlType          = ApplicationConstants.TextBox,
                    FilterFieldName      = "SearchText",
                    FilterId             = 10,
                    IsEnable             = true,
                    IsVisible            = true,
                    FilterTitle          = "Search",
                    FilterSequenceNumber = 1,
                    DefaultTextValue     = usersFilterModel.SearchText,
                    PlaceHolder          = "search users",
                },
                new CustomFilter()
                {
                    IconClass            = "-icon-badge",
                    ControlType          = ApplicationConstants.Checkbox,
                    IsShowOptionPanel    = true,
                    FilterFieldName      = "OperationUnits",
                    FilterId             = 100,
                    FilterTitle          = "Operation Units",
                    IsEnable             = true,
                    IsVisible            = true,
                    IsShowMore           = true,
                    IsShowCount          = true,
                    FilterSequenceNumber = 2,
                    Options         = GetOperationUnits(userList),
                    SelectedOptions = (usersFilterModel.OperationUnits != null? usersFilterModel.OperationUnits.Cast <object>().ToList() :new List <object>())
                },
                new CustomFilter()
                {
                    IconClass            = "-icon-branch",
                    ControlType          = ApplicationConstants.Checkbox,
                    IsShowOptionPanel    = true,
                    FilterFieldName      = "Brands",
                    FilterId             = 200,
                    FilterTitle          = "Brands",
                    IsEnable             = true,
                    IsVisible            = true,
                    IsShowMore           = true,
                    IsShowCount          = true,
                    FilterSequenceNumber = 3,
                    Options         = GetBrands(userList),
                    SelectedOptions = (usersFilterModel.Brands != null? usersFilterModel.Brands.Cast <object>().ToList() :new List <object>())
                },

                new CustomFilter()
                {
                    IconClass            = "-icon-people",
                    ControlType          = ApplicationConstants.Checkbox,
                    IsShowOptionPanel    = true,
                    FilterFieldName      = "Gender",
                    FilterId             = 202,
                    FilterTitle          = "Gender",
                    IsEnable             = true,
                    IsVisible            = true,
                    IsShowMore           = false,
                    IsShowCount          = true,
                    FilterSequenceNumber = 5,
                    Options = new List <OptionObject>()
                    {
                        new OptionObject()
                        {
                            ObjectId = "Male", ObjectName = "Male", RecordCounts = userList.Count(x => x.Gender == "Male")
                        },
                        new OptionObject()
                        {
                            ObjectId = "Female", ObjectName = "Female", RecordCounts = userList.Count(x => x.Gender == "Female")
                        }
                    },
                    SelectedOptions = (usersFilterModel.Genders != null? usersFilterModel.Genders.Cast <object>().ToList() :new List <object>())
                },
                new CustomFilter()
                {
                    IconClass                  = "-icon-alpha",
                    ControlType                = ApplicationConstants.RangeSlider,
                    IsShowOptionPanel          = true,
                    FilterFieldName            = "AgeRange",
                    FilterTitle                = "Age",
                    FilterId                   = 111,
                    IsEnable                   = true,
                    IsVisible                  = true,
                    IsShowMore                 = false,
                    FilterSequenceNumber       = 6,
                    FilterRangeDefaultMinValue = minimumAge,
                    FilterRangeDefaultMaxValue = maximumAge,
                    FilterRangeMinValue        = 1,
                    FilterRangeMaxValue        = 100,
                    Options         = new List <OptionObject>(),
                    SelectedOptions = new List <object>()
                },
                // new CustomFilter()
                //{
                // ControlType=ApplicationConstants.DropdownList,
                // FilterFieldName="SortCriteria",
                // FilterId=201,
                // FilterTitle="Sort By",
                // IsEnable=true,
                // IsVisible=true,
                // IsShowMore = false,
                // FilterSequenceNumber=7,
                // Options = GetSortingFields(),
                // SelectedOptions = (usersFilterModel.SortCriteria != null? new List<object>() {usersFilterModel.SortCriteria } :new List<object>())
                //},
                new CustomFilter()
                {
                    IconClass            = "-icon-sort",
                    ControlType          = ApplicationConstants.DropdownList,
                    IsShowOptionPanel    = true,
                    FilterFieldName      = "SortOrder",
                    FilterId             = 202,
                    FilterTitle          = "Sort Order",
                    IsEnable             = true,
                    IsVisible            = true,
                    IsShowMore           = false,
                    FilterSequenceNumber = 8,
                    Options = new List <OptionObject>()
                    {
                        new OptionObject()
                        {
                            ObjectId = Guid.Parse("afd76173-86cd-4b17-a1a1-8c73f386dfa1"), ObjectName = "ASC"
                        }, new OptionObject()
                        {
                            ObjectId = Guid.Parse("afd76173-86cd-4b17-a1a1-8c73f386dfa2"), ObjectName = "DESC"
                        }
                    },
                    SelectedOptions = (usersFilterModel.SortOrder != null? new List <object>()
                    {
                        usersFilterModel.SortOrder
                    } :new List <object>())
                },
                new CustomFilter()
                {
                    IconClass            = "-icon-cog",
                    ControlType          = ApplicationConstants.DropdownList,
                    FilterFieldName      = "OtherType",
                    FilterId             = 201,
                    FilterTitle          = "Order By",
                    IsEnable             = true,
                    IsVisible            = true,
                    IsShowMore           = false,
                    FilterSequenceNumber = 7,
                    Options         = GetOtherTypeOptions(),
                    SelectedOptions = new List <object>()
                    {
                        usersFilterModel.OtherType
                    }
                },
                //new CustomFilter()
                //{
                //    ControlType = ApplicationConstants.RangeSlider,
                //    FilterFieldName = "PriceRate",
                //    FilterTitle="Price Rate",
                //    FilterId = 203,
                //    IsEnable=true,
                //    IsVisible=true,
                //    IsShowMore =false,
                //    FilterSequenceNumber=8,
                //    FilterRangeDefaultMinValue =(minimumPriceRate>0?minimumPriceRate: 70),
                //    FilterRangeDefaultMaxValue = (maximumPriceRate>0?maximumPriceRate: 100),
                //    FilterRangeMinValue = 10,
                //    FilterRangeMaxValue= 300,
                //    Options = new List<OptionObject>(),
                //    SelectedOptions = new List<Guid>()
                //},
                // new CustomFilter()
                //{
                //    ControlType = ApplicationConstants.RangeSlider,
                //    FilterFieldName = "AverageRating",
                //    FilterTitle="Average Rating",
                //    FilterId = 204,
                //    IsEnable=true,
                //    IsVisible=true,
                //    IsShowMore =false,
                //    FilterSequenceNumber=9,
                //    FilterRangeDefaultMinValue =(minimumAvgRate>0?minimumAvgRate: 2),
                //    FilterRangeDefaultMaxValue = (maximumAvgRate>0?maximumAvgRate: 8),
                //    FilterRangeMinValue = 1,
                //    FilterRangeMaxValue= 10,
                //    Options = new List<OptionObject>(),
                //    SelectedOptions = new List<Guid>()
                //}
            };

            userViewModel.CustomFilters = customFilters.OrderBy(x => x.FilterSequenceNumber).ToList();
            return(userViewModel);
        }
Пример #11
0
        private static List <UserDetailModel> SetSelectedValues(UsersFilterModel usersFilterModel, int minimumAge, int maximumAge, List <UserDetailModel> filteredUsers)
        {
            if (usersFilterModel != null)
            {
                if (usersFilterModel.Genders != null && usersFilterModel.Genders.Count > 0)
                {
                    //if (usersFilterModel.Gender == 0)
                    //    filteredUsers = filteredUsers.Where(x => x.Gender == "Male").ToList();
                    //else if (usersFilterModel.Gender == 1)
                    filteredUsers = filteredUsers.Where(x => usersFilterModel.Genders.Contains(x.Gender)).ToList();
                }
                if (usersFilterModel.OperationUnits != null && usersFilterModel.OperationUnits.Count > 0)
                {
                    filteredUsers = filteredUsers.Where(x => usersFilterModel.OperationUnits.Contains(x.OperationUnitId)).ToList();
                }
                if (usersFilterModel.Brands != null && usersFilterModel.Brands.Count > 0)
                {
                    filteredUsers = filteredUsers.Where(x => usersFilterModel.Brands.Contains(x.BrandId)).ToList();
                }
                if (minimumAge > 0)
                {
                    filteredUsers = filteredUsers.Where(x => x.Age >= minimumAge).ToList();
                }
                if (maximumAge > 0)
                {
                    filteredUsers = filteredUsers.Where(x => x.Age <= maximumAge).ToList();
                }
                if (!string.IsNullOrEmpty(usersFilterModel.SearchText))
                {
                    filteredUsers = filteredUsers.Where(x => x.UserName.ToLower().StartsWith(usersFilterModel.SearchText.ToLower()) ||
                                                        x.UserName.ToLower().Contains(usersFilterModel.SearchText.ToLower()) ||
                                                        x.UserName.ToLower().EndsWith(usersFilterModel.SearchText.ToLower())).ToList();
                }

                if (usersFilterModel.SortOrder == Guid.Empty || usersFilterModel.SortOrder != Guid.Empty && usersFilterModel.SortOrder == Guid.Parse("afd76173-86cd-4b17-a1a1-8c73f386dfa1"))
                {
                    if (usersFilterModel.SortCriteria == Guid.Parse("afd76173-86cd-4b17-a1a1-8c73f386dfb3"))
                    {
                        filteredUsers = filteredUsers.OrderBy(x => x.UserName).ToList();
                    }
                    else if (usersFilterModel.SortCriteria == Guid.Parse("92120e72-5ab3-4add-a255-c5514e9115d4"))
                    {
                        filteredUsers = filteredUsers.OrderBy(x => x.Age).ToList();
                    }
                    else if (usersFilterModel.SortCriteria == Guid.Parse("afd76173-86cd-4b17-a1a1-8c73f386dfb5"))
                    {
                        filteredUsers = filteredUsers.OrderBy(x => x.Gender).ToList();
                    }
                    else if (usersFilterModel.SortCriteria == Guid.Parse("5e0d0990-f3c6-40ae-b2af-3e7be2b3c7b6"))
                    {
                        filteredUsers = filteredUsers.OrderBy(x => x.UserId).ToList();
                    }
                }
                else if (usersFilterModel.SortOrder != Guid.Empty && usersFilterModel.SortOrder == Guid.Parse("afd76173-86cd-4b17-a1a1-8c73f386dfa2"))
                {
                    if (usersFilterModel.SortCriteria == Guid.Parse("afd76173-86cd-4b17-a1a1-8c73f386dfb3"))
                    {
                        filteredUsers = filteredUsers.OrderByDescending(x => x.UserName).ToList();
                    }
                    else if (usersFilterModel.SortCriteria == Guid.Parse("92120e72-5ab3-4add-a255-c5514e9115d4"))
                    {
                        filteredUsers = filteredUsers.OrderByDescending(x => x.Age).ToList();
                    }
                    else if (usersFilterModel.SortCriteria == Guid.Parse("afd76173-86cd-4b17-a1a1-8c73f386dfb5"))
                    {
                        filteredUsers = filteredUsers.OrderByDescending(x => x.Gender).ToList();
                    }
                    else if (usersFilterModel.SortCriteria == Guid.Parse("5e0d0990-f3c6-40ae-b2af-3e7be2b3c7b6"))
                    {
                        filteredUsers = filteredUsers.OrderByDescending(x => x.UserId).ToList();
                    }
                }
            }

            return(filteredUsers);
        }
Пример #12
0
        public async Task <ResponseModel <List <UserResponseModel> > > GetFilteredAsync(UsersFilterModel model, long adminId)
        {
            var substring = model.SearchString.Split(" ");
            var users     = _dbContext.Users.Where(x => !x.IsRemoved)
                            .Where(x => x.Id != adminId).AsQueryable();

            if (model.SearchString != null)
            {
                users = users.Where(x => x.FirstName.Contains(substring[0]) ||
                                    x.Email.Contains(model.SearchString) ||
                                    x.LastName.Contains(substring[0]));
            }
            if (model.BlockState == FilterUserBlock.Active)
            {
                users = users.Where(x => x.LockoutEnd == null);
            }
            if (model.BlockState == FilterUserBlock.Blocked)
            {
                users = users.Where(x => x.LockoutEnd != null);
            }
            var sortedUsers   = users.AsEnumerable().SortByProperty(model.FilteredColumnType.ToString(), model.SortType);
            var count         = sortedUsers.Count();
            var responseUsers = sortedUsers
                                .Skip((model.PageCount - 1) * model.PageSize).Take(model.PageSize)
                                .GroupBy(x => x.Id)
                                .Select(group => new UserResponseModel
            {
                User = group.Select(x => x).FirstOrDefault()
            }).ToList();
            var result = new ResponseModel <List <UserResponseModel> >(responseUsers, count);

            return(result);
        }
Пример #13
0
        public async Task <IActionResult> Test(UsersFilterModel usersFilter)
        {
            var users = await _userService.GetUsersAsync(usersFilter);

            return(Ok(users));
        }
Пример #14
0
 public ActionResult Users(UsersFilterModel model)
 {
     return(View(model));
 }
Пример #15
0
 public async Task <IHttpActionResult> Users([FromUri] UsersFilterModel model)
 {
     return(Ok(await _authRepository.List(model.FirstName, model.LastName, model.Email, model.UserName, model.Skip, model.Take)));
 }