private void AddParam(FilterRule rule) { //如果是当前用户 if (rule.Value.Equals(FilterCurrent.CurrentUserId.ToString())) { ListParams.Add(User.UserInfo.UserId); return; } var propertyInfo = SourceType.GetProperty(rule.Field); if (propertyInfo == null) { //默认是字符串类型 ListParams.Add(rule.Value); } if (!propertyInfo.PropertyType.IsEnum) { var value = Convert.ChangeType(rule.Value, propertyInfo.PropertyType); ListParams.Add(value); return; } var eValue = Enum.Parse(propertyInfo.PropertyType, rule.Value); ListParams.Add(eValue); }
/// <summary> /// 加载批注标签数据 /// </summary> private async void LoadPostilTagData() { PostilTagList.Clear(); var listParams = new ListParams { Search = Query.Eq(Hubs.Tag.ProjectId, Mg.Get <IMgContext>().ProjectId) }; var result = await DataApi.GetListAsync(Hubs.Tag.T, listParams); if (!result.IsOk) { return; } var records = result.GetRecords(); foreach (var record in records) { var name = record[Hubs.Tag.Name].As <string>(); var model = new TagInfoModel { Id = record.Id, Name = $" {name} " }; PostilTagList.Add(model); } }
public async Task <IEnumerable <Comment> > ListAsync([Required] ListParams parameters) { // Check if player is authenticated await _authentication.AuthenticateAsync(parameters.AuthToken); return(await _repository.Comments.ToListAsync()); }
private void AddArrayParam(FilterRule rule) { var propertyInfo = SourceType.GetProperty(rule.Field); if (propertyInfo == null) { //默认是字符串类型 ListParams.Add(rule.Value); } var valueArr = rule.Value.Split(','); var arr = Array.CreateInstance(propertyInfo.PropertyType, valueArr.Length); if (propertyInfo.PropertyType.IsEnum) { for (int i = 0; i < valueArr.Length; i++) { var enumValue = (Enum)Enum.Parse(propertyInfo.PropertyType, valueArr[i]); arr.SetValue(enumValue, i); } } else { for (int i = 0; i < valueArr.Length; i++) { var objValue = Convert.ChangeType(valueArr[i], propertyInfo.PropertyType); arr.SetValue(objValue, i); } } ListParams.Add(arr); }
protected List <TModel> GetListModel(ListParams listParams) { IQueryable <TEntity> query = GetQuery(); query = query.OrderBy(listParams.DefaultSort); return(GetListModel(listParams, ref query)); }
/// <summary> /// 获取用户信息列表 /// </summary> /// <param name="listParams">集合的筛选、分页、排序、映射参数</param> /// <returns></returns> public static async Task <Result> GetUserInfoListAsync(ListParams listParams = null) { var result = await Mg.Get <IMgWeb>().GetResultAsync <PostilApp>("v1/user/list", new { ListParams = listParams }); return(result); }
/// <summary> /// 获取自定义数据列表(筛选、分页、排序、映射) /// </summary> /// <param name="name">数据集名称(表名)</param> /// <param name="listParams">集合的筛选、分页、排序、映射参数</param> /// <returns></returns> public static async Task <Result> GetCustomDataListAsync(string name, ListParams listParams = null) { var result = await Web.GetResultAsync <DemoApp>("v1/data/list", new { Name = name, ListParams = listParams }); return(result); }
/// <summary> /// 获取自定义数据列表(筛选、分页、排序、映射) /// </summary> /// <param name="name">数据集名称</param> /// <param name="listParams">集合的筛选、分页、排序、映射参数</param> /// <returns></returns> public static async Task <Result> GetListAsync(string name, ListParams listParams = null) { var result = await Mg.Get <IMgWeb>().GetResultAsync <PostilApp>("v1/data/list", new { Name = name, ListParams = listParams }); return(result); }
public async Task <IActionResult> GetRestuarants([FromQuery] ListParams listParams) { var restuarants = await _repo.GetRestuarantsAsync(listParams); if (restuarants == null) { return(NotFound("Cannot get restuarants")); } Response.AddPagination(restuarants.CurrentPage, restuarants.PageSize, restuarants.TotalCount, restuarants.TotalPages); return(Ok(restuarants)); }
/// <summary> /// 加载指定页的批注信息 /// </summary> private async void LoadPostilInfosAsync(int pageIndex, Action action = null) { IsBusy = true; var listParams = new ListParams { Search = Query.Eq(Hubs.Postil.ProjectId, Mg.Get <IMgContext>().ProjectId), Page = new ListParams.PageInfo(pageIndex, 8), Sort = new[] { new ListParams.SortProperty(Hubs.Postil.CreateTime, false) } }; var dataResult = await DataApi.GetListAsync(Hubs.Postil.T, listParams); _listPostilInfoModel.Clear(); if (!dataResult.IsOk) { Mg.Get <IMgLog>().Error("获取批注信息失败" + dataResult.Message); Mg.Get <IMgDialog>().ShowDesktopAlert("获取批注信息失败", dataResult.Message); IsBusy = false; return; } var models = dataResult.GetRecords().Select(t => t.As <PostilInfoModel>()).ToList(); if (models.Count == 0) { IsBusy = false; return; } var urlDic = await Util.Data.GetPictureUrlsAsync(models.Select(t => t.FileId).ToArray()); var userDic = await Util.Data.GetUserInfosAsync(models.Select(t => t.CreateUser).ToArray()); foreach (var postilInfoModel in models) { postilInfoModel.ImageUrl = urlDic?[postilInfoModel.FileId]; postilInfoModel.PostilUser = userDic?[postilInfoModel.CreateUser]; _listPostilInfoModel.Add(postilInfoModel); } ViewPictureModels.Clear(); for (var index = 0; index < models.Count; index++) { var model = models[index]; ViewPictureModels.Add(new PictureModel { SelectedPicIndex = index, PostilId = model._id, ImageUrl = model.ImageUrl }); } SelectedViewPicModel = ViewPictureModels.FirstOrDefault(); action?.Invoke(); LoadNextPageCountAsync(); IsBusy = false; }
/// <summary> /// The execute list params. /// </summary> /// <param name="listParams"> /// The list params. /// </param> /// <returns> /// The <see cref="int"/>. /// </returns> private static int ExecuteListParams(ListParams listParams) { var allUsers = userService.GetAllUsers(); var builder = new StringBuilder(); foreach (var userData in allUsers) { builder.AppendLine($"{userData.Id}. {userData.User} : {userData.CreatedOn}"); } Console.WriteLine(); Console.WriteLine(builder.ToString()); return(ExitCodes.Ok); }
public async Task <PagedList <Restuarant> > GetRestuarantsAsync(ListParams listParams) { var list = _context.Restuarants.AsQueryable(); if (listParams.Name != null) { list = list.Where(r => r.Name.Contains(listParams.Name.ToUpper())); } var zipCode = 0; if (listParams.ZipCode != null && int.TryParse(listParams.ZipCode, out zipCode)) { list = list.Where(r => r.ZipCode == zipCode); } return(await PagedList <Restuarant> .CreateAsync(list, listParams.PageNumber, listParams.PageSize)); }
/// <summary> /// 读取下一页批注是否还有数据 /// </summary> private async void LoadNextPageCountAsync() { var listParams = new ListParams { Search = Query.Eq(Hubs.Postil.ProjectId, Mg.Get <IMgContext>().ProjectId), Page = new ListParams.PageInfo(_currentPageIndex + 1, 8), Sort = new[] { new ListParams.SortProperty(Hubs.Postil.CreateTime, true) }, Map = new[] { Id.Name } }; var result = await DataApi.GetListAsync(Hubs.Postil.T, listParams); if (!result.IsOk) { _canNextPage = false; return; } _canNextPage = result.GetRecords().Count > 0; }
public async Task <PagedList <User> > GetUsers(ListParams listParams) { var users = context.Users.Include(p => p.Photos).AsQueryable(); users = users.Where(u => u.Id != listParams.UserId); users = users.Where(u => u.Gender == listParams.Gender); if (listParams.Likers) { var userLikers = await GetUserLikes(listParams.UserId, listParams.Likers); users = users.Where(u => userLikers.Contains(u.Id)); } if (listParams.Likees) { var userLikees = await GetUserLikes(listParams.UserId, listParams.Likers); users = users.Where(u => userLikees.Contains(u.Id)); } if (listParams.MinAge != 18 || listParams.MaxAge != 99) { var minDob = DateTime.Today.AddYears(-listParams.MaxAge - 1); var maxDob = DateTime.Today.AddYears(-listParams.MinAge); users = users.Where(u => u.DateOfBirth >= minDob && u.DateOfBirth <= maxDob); } if (!string.IsNullOrEmpty(listParams.OrderBy)) { switch (listParams.OrderBy) { case "created": users = users.OrderByDescending(u => u.Created); break; default: users = users.OrderByDescending(u => u.LastActive); break; } } return(await PagedList <User> .CreateAsync(users, listParams.PageNumber, listParams.PageSize)); }
/// <summary> /// 加载所有批注信息数据 /// </summary> private async void LoadPostilInfos() { IsBusy = true; PostilInfoModels.Clear(); _backupPostilInfoModels.Clear(); var listParams = new ListParams { Search = Query.Eq(Hubs.Postil.ProjectId, Mg.Get <IMgContext>().ProjectId), Sort = new[] { new ListParams.SortProperty(Hubs.Postil.CreateTime, false) } }; var result = await DataApi.GetListAsync(Hubs.Postil.T, listParams); if (!result.IsOk) { Mg.Get <IMgLog>().Error("获取批注信息失败" + result.Message); Mg.Get <IMgDialog>().ShowDesktopAlert("获取批注信息失败", result.Message); IsBusy = false; return; } var models = result.GetRecords().Select(t => t.As <PostilInfoModel>()).ToList(); if (models.Count == 0) { IsBusy = false; return; } var urlDic = await Util.Data.GetPictureUrlsAsync(models.Select(t => t.FileId).ToArray()); var userDic = await Util.Data.GetUserInfosAsync(models.Select(t => t.CreateUser).ToArray()); foreach (var postilInfoModel in models) { postilInfoModel.ImageUrl = urlDic?[postilInfoModel.FileId]; postilInfoModel.PostilUser = userDic?[postilInfoModel.CreateUser]; postilInfoModel.FirstTag = $" {postilInfoModel.Tags[0]} "; var dt1 = Convert.ToDateTime(postilInfoModel.CreateTime); var dt2 = DateTime.Now; postilInfoModel.LastTime = DateDiff(dt1, dt2); PostilInfoModels.Add(postilInfoModel); _backupPostilInfoModels.Add(postilInfoModel); } IsBusy = false; }
/// <summary> /// 加载用户真实姓名数据 /// </summary> public static async Task <Dictionary <Id, string> > GetUserInfosAsync(Id[] userIds) { var listParamas = new ListParams { Search = Query.In(Id.Name, userIds), Map = new[] { Id.Name, "RealName" } }; var result = await UserApi.GetUserInfoListAsync(listParamas); if (!result.IsOk) { Mg.Get <IMgLog>().Error($"获取用户的头像数据失败:{result.Message}"); Mg.Get <IMgDialog>().ShowDesktopAlert("获取用户的头像数据失败", result.Message); return(null); } var items = result.GetRecords(); return(items.ToDictionary(item => item[Id.Name].As <Id>(), item => item["RealName"].As <string>())); }
public async Task <IActionResult> GetUsers([FromQuery] ListParams listParams) { var currentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value); var userFromRepo = await repo.GetUser(currentUserId); listParams.UserId = currentUserId; if (string.IsNullOrEmpty(listParams.Gender)) { listParams.Gender = userFromRepo.Gender == "male" ? "female": "male"; } var users = await repo.GetUsers(listParams); var usersToReturn = mapper.Map <IEnumerable <UserForListDto> >(users); Response.AddPagination(users.CurrentPage, users.PageSize, users.TotalCount, users.TotalPages); return(Ok(usersToReturn)); }
protected List <TEntity> GetList(ListParams listParams, ref IQueryable <TEntity> query) { string customFilter = ParseCustomFilters(listParams.CustomFilters); if (!string.IsNullOrEmpty(customFilter)) { listParams.Filter += (string.IsNullOrEmpty(listParams.Filter) ? "" : " AND ") + customFilter; } if (!string.IsNullOrEmpty(listParams.Filter)) { query = query.Where(listParams.Filter); } if (listParams.Skip != 0 || listParams.Take != 0) { return(query .Skip(listParams.Skip) .Take(listParams.Take) .ToList()); } return(query.ToList()); }
protected List <TModel> GetListModel(ListParams listParams, ref IQueryable <TEntity> query) { List <TEntity> page = GetList(listParams, ref query); return(page.Select(Mapper.Map <TEntity, TModel>).ToList()); }
private string TranslateRule(FilterRule rule) { var strBuilder = new StringBuilder(); if (rule == null) { return(" 1=1 "); } if (currentParamMath.Contains(rule.Field)) { strBuilder.Append(GetCurrentRule(rule)); return(strBuilder.ToString()); } switch (rule.Op) { case FilterRuleOp.Equal: case FilterRuleOp.Greater: case FilterRuleOp.GreaterOrEqual: case FilterRuleOp.Less: case FilterRuleOp.LessOrEqual: case FilterRuleOp.NotEqual: strBuilder.Append(rule.Field); strBuilder.Append(GetFilterRuleOpQueryText(rule.Op)); strBuilder.Append(GetParamToken()); AddParam(rule); break; case FilterRuleOp.Like: strBuilder.Append(rule.Field); strBuilder.Append($".Contains({GetParamToken()})"); ListParams.Add(rule.Value); break; case FilterRuleOp.StartWith: strBuilder.Append(rule.Field); strBuilder.Append($".StartsWith({GetParamToken()})"); ListParams.Add(rule.Value); break; case FilterRuleOp.EndWith: strBuilder.Append(rule.Field); strBuilder.Append($".EndsWith({GetParamToken()})"); ListParams.Add(rule.Value); break; case FilterRuleOp.In: strBuilder.Append($"{GetParamToken()}.Contains(outerIt.{rule.Field})"); AddArrayParam(rule); break; case FilterRuleOp.Notin: strBuilder.Append($"!{GetParamToken()}.Contains(outerIt.{rule.Field})"); AddArrayParam(rule); break; default: break; } return(strBuilder.ToString()); }
public async Task <IEnumerable <Question> > ListAsync([Required] ListParams parameters) { // Returns list of Questions return(await _repository.Questions.ToListAsync()); }
public Task <IEnumerable <Forum> > ListAsync(ListParams parameters) { return(MakeRequestAsync <IEnumerable <Forum> >(parameters)); }
public Task <PagedList <Restuarant> > GetRestuarantsAsync(ListParams listParams) { throw new NotImplementedException(); }