コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }