public async Task <PagingResponseMessage <BuildingNoticeListResponse> > GetListAsync(BuildingNoticeListCondition condition, CancellationToken cancellationToken = default(CancellationToken)) { PagingResponseMessage <BuildingNoticeListResponse> pagingResponse = new PagingResponseMessage <BuildingNoticeListResponse>(); if (condition == null) { throw new ArgumentNullException(nameof(condition)); } var q = Store.GetQuery().Where(a => !a.IsDeleted); if (condition.OrganizationIds?.Count > 0) { q = q.Where(a => condition.OrganizationIds.Contains(a.OrganizationId)); } if (condition.UserIds?.Count > 0) { q = q.Where(a => condition.UserIds.Contains(a.UserId)); } if (!string.IsNullOrEmpty(condition.KeyWord)) { q = q.Where(a => a.Title.Contains(condition.KeyWord) || a.Content.Contains(condition.KeyWord)); } if (condition.StartTime != null) { q = q.Where(a => a.CreateTime >= condition.StartTime); } if (condition.EndTime != null) { q = q.Where(a => a.CreateTime <= condition.EndTime); } if (!string.IsNullOrEmpty(condition.AreaCode)) { q = q.Where(a => a.AreaDefine.Code == condition.AreaCode); } if (!string.IsNullOrEmpty(condition.DistrictCode)) { q = q.Where(a => a.DistrictDefine.Code == condition.DistrictCode); } if (!string.IsNullOrEmpty(condition.CityCode)) { q = q.Where(a => a.CityDefine.Code == condition.CityCode); } string fr = ApplicationCore.ApplicationContext.Current.FileServerRoot; fr = (fr ?? "").TrimEnd('/'); pagingResponse.TotalCount = await q.CountAsync(cancellationToken); var qlist = await q.OrderByDescending(a => a.CreateTime).Skip(condition.PageIndex * condition.PageSize).Take(condition.PageSize).ToListAsync(cancellationToken); var resulte = qlist.Select(a => new BuildingNoticeListResponse { BuildingId = a.BuildingId, Id = a.Id, Icon = string.IsNullOrEmpty(a.Icon) ? "" : fr + "/" + a.Icon.TrimStart('/'), CreateTime = a.CreateTime, Ext1 = a.Ext1, Ext2 = a.Ext2, Title = a.Title, OrganizationId = a.OrganizationId, OrganizationName = a.OrganizationName, UserId = a.UserId, UserName = a.UserName, BuildingName = a.BuildingName, AreaFullName = (a.CityDefine != null && !string.IsNullOrEmpty(a.CityDefine.Name) ? a.CityDefine.Name + "-" : "") + (a.DistrictDefine != null && !string.IsNullOrEmpty(a.DistrictDefine.Name) ? a.DistrictDefine.Name + "-" : "") + (a.AreaDefine != null && !string.IsNullOrEmpty(a.AreaDefine.Name) ? a.AreaDefine.Name : "") }); pagingResponse.PageIndex = condition.PageIndex; pagingResponse.PageSize = condition.PageSize; pagingResponse.Extension = resulte.ToList(); return(pagingResponse); }
public async Task <PagingResponseMessage <BuildingNoticeListResponse> > GetBuildingNoticeList(UserInfo user, [FromBody] BuildingNoticeListCondition condition) { Logger.Trace($"用户{user?.UserName ?? ""}({user?.Id ?? ""})接收到获取跑马灯列表(GetBuildingNoticeList)请求:\r\n,\r\n请求参数为:\r\n" + (condition != null ? JsonHelper.ToJson(condition) : "")); PagingResponseMessage <BuildingNoticeListResponse> response = new PagingResponseMessage <BuildingNoticeListResponse>(); if (!ModelState.IsValid) { response.Code = ResponseCodeDefines.ModelStateInvalid; response.Message = ModelState.GetAllErrors(); Logger.Warn($"用户{user?.UserName ?? ""}({user?.Id ?? ""})获取跑马灯列表(GetBuildingNoticeList)模型验证失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (condition != null ? JsonHelper.ToJson(condition) : "")); return(response); } try { return(await _buildingNoticeManager.GetListAsync(condition, HttpContext.RequestAborted)); } catch (Exception e) { response.Code = ResponseCodeDefines.ServiceError; response.Message = e.ToString(); Logger.Error($"用户{user?.UserName ?? ""}({user?.Id ?? ""})获取跑马灯列表(GetBuildingBaseInfo)报错:\r\n{e.ToString()},\r\n请求参数为:\r\n" + (condition != null ? JsonHelper.ToJson(condition) : "")); } return(response); }