public async Task <ActionResult <PaginatedItemsDto <User> > > GetPaginated( [FromHeader] string authToken, [FromQuery] int pageIndex = 0, [FromQuery] int pageSize = 1, [FromQuery] string orderBy = "LastName", [FromQuery] bool isAscending = true, [FromQuery] UserSearchParameters searchParameters = null ) { if (pageIndex < 0) { return(BadRequest("Page index must be greater than or equal to 0.")); } if (pageSize < 1) { return(BadRequest("Page size must be greater than or equal to 1.")); } if (!await _authenticationService.CheckAccess(authToken, "userView")) { return(Unauthorized()); } var users = await _userService.Get(); var queryable = users.AsQueryable(); var filtered = GetFiltered(queryable, searchParameters); var ordered = isAscending ? filtered.OrderByMember(orderBy) : filtered.OrderByMemberDescending(orderBy); var paginated = ordered.Skip(pageIndex * pageSize).Take(pageSize); long totalCount = ordered.LongCount(); return(Ok(new PaginatedItemsDto <User>(pageIndex, pageSize, totalCount, paginated))); }
private List <LoggedUser> GetUsersEx(UserSearchParameters lp) { SetSqlFormat("select * from {0}", SynnDataProvider.TableNames.Users); ClearParameters(); if (!string.IsNullOrEmpty(lp.UserName)) { AddSqlWhereLikeField("UserName", lp.UserName, LikeSelectionStyle.AsIs); } if (!string.IsNullOrEmpty(lp.Password)) { AddSqlWhereLikeField("Password", lp.Password, LikeSelectionStyle.AsIs); } if (lp.Id.HasValue) { AddSqlWhereLikeField("Id", lp.Id.ToString()); } if (lp.Ids.NotEmpty()) { StartORGroup(); foreach (var id in lp.Ids) { AddOREqualField("Id", id); } EndORGroup(); } var lst = new List <LoggedUser>(); FillList(lst, typeof(LoggedUser)); return(lst); }
public async Task <IActionResult> OnGetAsync() { if (string.IsNullOrWhiteSpace(Q)) { return(LocalRedirect("/search/")); } SearchScreenName = ScreenNameRegex.Match(Q.Trim()).Value; if (string.IsNullOrWhiteSpace(SearchScreenName)) { HttpContext.Response.Headers.Add("Location", "/search"); return(StatusCode(StatusCodes.Status303SeeOther)); } long?TargetUserID = await DBHandler.Instance.SelectID_Unique_screen_name(SearchScreenName).ConfigureAwait(false); if (Direct != false && TargetUserID.HasValue) { HttpContext.Response.Headers.Add("Location", "/users/" + TargetUserID.Value.ToString()); return(StatusCode(StatusCodes.Status303SeeOther)); } var sw = Stopwatch.StartNew(); Params = new UserSearchParameters(); await Params.InitValidate(HttpContext).ConfigureAwait(false); Limit = 100; //screen_nameを前方一致検索する Users = await DB.SelectUserLike(SearchScreenName.Replace(' ', '%').Replace("_", @"\_") + "%", Params.ID, Params.UserSearch_LikeMode.Value, Limit).ConfigureAwait(false); QueryElapsedMilliseconds = sw.ElapsedMilliseconds; return(Page()); }
public void SearchUsers_EmptyParameters_RecordCountSameAsTotal() { var parameters = new UserSearchParameters(); var result = userRepository.Search(parameters); Assert.AreEqual(result.Records.Count(), result.TotalCount); }
public void SearchUsers_ItHasRecords() { var parameters = new UserSearchParameters(); var result = userRepository.Search(parameters); Assert.IsTrue(result.Records.Any()); }
public IUserSearchParameters CloneUserSearchParameters(IUserSearchParameters userSearchParameters) { var clone = new UserSearchParameters(userSearchParameters.SearchQuery) { IncludeEntities = userSearchParameters.IncludeEntities, Page = userSearchParameters.Page, MaximumNumberOfResults = userSearchParameters.MaximumNumberOfResults }; return(clone); }
public void SearchUsers_FilterEndsWithUsername_ResultsOnlyWithUsernameEndsWith() { var parameters = new UserSearchParameters { UserName = new SearchFilter <string> { Value = "com", FilterType = FilterType.EndsWith } }; var result = userRepository.Search(parameters); Assert.IsTrue(result.FilteredCount > 0); Assert.IsTrue(result.Records.All(x => x.UserName.EndsWith(parameters.UserName.Value))); }
public void SearchUsers_FilterByUserName_ResultsOnlyWithUsernameContaining() { var parameters = new UserSearchParameters { UserName = new SearchFilter <string> { Value = "oct", FilterType = FilterType.Like } }; var result = userRepository.Search(parameters); Assert.IsTrue(result.FilteredCount > 0); Assert.IsTrue(result.Records.All(x => x.UserName.Contains(parameters.UserName.Value))); }
public void SearchUsers_FilterTypeGreaterThanZero_ResultsAllGreaterThanZero() { var parameters = new UserSearchParameters { Type = new SearchFilter <byte?> { Value = 0, FilterType = FilterType.GreaterThan } }; var result = userRepository.Search(parameters); Assert.IsTrue(result.FilteredCount > 0); Assert.IsTrue(result.Records.All(x => x.Type > 0)); }
public void SearchUsers_FilterTypeLessThanFour_ResultsAllLessThanFour() { var parameters = new UserSearchParameters { Type = new SearchFilter <byte?> { Value = 4, FilterType = FilterType.LessThan } }; var result = userRepository.Search(parameters); Assert.IsTrue(result.FilteredCount > 0); Assert.IsTrue(result.Records.All(x => x.Type < 4)); }
public void SearchUsers_SortByUserNameDesc_ResultsSortedByUserNameDescending() { var parameters = new UserSearchParameters { LastName = new SearchFilter <string> { SortOrder = SortOrder.Descending } }; var result = userRepository.Search(parameters); var resultLastNames = result.Records.Select(x => x.LastName).ToList(); var inMemoryDescSorted = resultLastNames.OrderByDescending(x => x).ToList(); Assert.IsTrue(resultLastNames.SequenceEqual(inMemoryDescSorted)); }
public async Task <ActionResult> LoadUserData(UserSearchParameters searchParam) { var draw = Request.Form.GetValues("draw") == null ? "1" : Request.Form.GetValues("draw").FirstOrDefault(); var start = Request.Form.GetValues("start") == null ? "0" : Request.Form.GetValues("start").FirstOrDefault(); var length = Request.Form.GetValues("length") == null ? "10" : Request.Form.GetValues("length").FirstOrDefault(); //Find Order Column var sortColumn = Request.Form.GetValues("order[0][column]") == null ? "" : Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][name]").FirstOrDefault(); var sortColumnDir = Request.Form.GetValues("order[0][dir]") == null ? "asc" : Request.Form.GetValues("order[0][dir]").FirstOrDefault(); var sort = new ReturnObject().GetSortModels((sortColumn == "" ? "Id" : sortColumn), sortColumnDir); int pageSize = length != null?Convert.ToInt32(length) : 0; int skip = start != null?Convert.ToInt32(start) : 0; var parameters = new GetAllUserParameters() { UserName = searchParam.UserName, OrderByValue = sort, PageNumber = skip, PageSize = pageSize }; var returnedData = await restClientContainer.SendRequest <DataPagging>("User/GetAll", RestSharp.Method.POST, parameters); int recordsTotal = returnedData?.TotalPage ?? 0; var data = returnedData?.Result?.Data; if (returnedData == null || returnedData.Result == null || data == null) { return(Json(new { draw = draw, recordsFiltered = 0, recordsTotal = 0, data = new fillGrids.UsersViewModel() }, JsonRequestBehavior.AllowGet)); } string json = JsonConvert.SerializeObject(data); var jsonDeserialize = Helper <List <fillGrids.UsersViewModel> > .Convert(json); var listSerialized = new { draw = draw, recordsFiltered = recordsTotal, recordsTotal = recordsTotal, data = jsonDeserialize }; return(Json(listSerialized, JsonRequestBehavior.AllowGet)); }
public void SearchUsers_PageSize2_OnlyTwoRecordsReturnedAndTotalRemainsSame() { var parameters = new UserSearchParameters { Page = 1, PageSize = 2, FirstName = new SearchFilter <string> { SortOrder = SortOrder.Ascending } }; var pagedResult = userRepository.Search(parameters); parameters = new UserSearchParameters(); var noPageResult = userRepository.Search(parameters); Assert.AreEqual(pagedResult.TotalCount, noPageResult.TotalCount); Assert.AreNotEqual(pagedResult.Records.Count(), noPageResult.Records.Count()); }
private IQueryable <User> GetFiltered(IQueryable <User> query, UserSearchParameters search) { var result = query; if (search == null) { return(result); } if (!string.IsNullOrEmpty(search.TechId)) { result = result.Where(e => e.TechId.ToLower().Contains(search.TechId.ToLower())); } if (!string.IsNullOrEmpty(search.LastName)) { result = result.Where(e => !string.IsNullOrEmpty(e.LastName) && e.LastName.ToLower().Contains(search.LastName.ToLower())); } if (!string.IsNullOrEmpty(search.FirstName)) { result = result.Where(e => !string.IsNullOrEmpty(e.FirstName) && e.FirstName.ToLower().Contains(search.FirstName.ToLower())); } if (!string.IsNullOrEmpty(search.Username)) { result = result.Where(e => !string.IsNullOrEmpty(e.Username) && e.Username.ToLower().Contains(search.Username.ToLower())); } if (!string.IsNullOrEmpty(search.Status)) { result = result.Where(e => !string.IsNullOrEmpty(e.Status) && e.Status.ToLower().Contains(search.Status.ToLower())); } return(result); }
public List <LoggedUser> GetUsers(UserSearchParameters lp) { return(GetUsersEx(lp)); }
public dynamic SearchAjax(bool?active = true, byte?userType = null, string userName = null, string firstName = null, string lastName = null, string sortBy = "UserName", int page = 0) { var appSettings = configService.GetApplicationSettings(); var parameters = new UserSearchParameters() { Active = new SearchFilter <bool>(FilterType.Equals), UserName = new SearchFilter <string>(userName, FilterType.Like), FirstName = new SearchFilter <string>(firstName, FilterType.Like), LastName = new SearchFilter <string>(lastName, FilterType.Like), Type = new SearchFilter <byte?>(userType, FilterType.Equals), PageSize = appSettings.MaxPerPage }; if (active.HasValue) { parameters.Active.Value = active.Value; } if (!string.IsNullOrEmpty(sortBy)) { var sortSplit = sortBy.Split(','); var sortOperator = sortSplit.Length == 0 || sortSplit[1] == "asc" ? SortOrder.Ascending : SortOrder.Descending; switch (sortSplit[0].ToLower()) { case "2": parameters.FirstName.SortOrder = sortOperator; break; case "3": parameters.LastName.SortOrder = sortOperator; break; case "0": parameters.UserName.SortOrder = sortOperator; break; case "1": parameters.Type.SortOrder = sortOperator; break; } } var result = userRepository.Search(parameters); return(new { recordsTotal = result.TotalCount, recordsFiltered = result.FilteredCount, data = result.Records.Select(userRecord => { var row = new List <string>(); row.Add(userRecord.UserName); row.Add(userRecord.Type != null ? Enum.Parse(typeof(UserType), userRecord.Type.ToString()).ToString() : ""); row.Add(userRecord.FirstName); row.Add(userRecord.LastName); row.Add(userRecord.Id.ToString()); return row; }) }); }
public SearchResult <Entities.User.User> Search(UserSearchParameters parameters) { return(DapperHelper.SearchDapper <Entities.User.User, SearchParameters, MainDatabase>(parameters, FullTableName, new MainDatabase())); }
/// <summary> /// Implements <see cref="BaseDataRepository{TResource}.Find(CommonClasses.BaseSearchParameters)"/> /// </summary> /// <param name="parameters"><see cref="UserSearchParameters"/></param> /// <returns><see cref="IEnumerable{T}"/> of <see cref="UserResource"/></returns> public async Task <IEnumerable <UserResource> > Find(UserSearchParameters parameters) => await base.Find(parameters);