Exemple #1
0
        public async Task <ActionResult <BaseResponse> > Get([FromQuery] DataDefineLibraryPageRequest req)
        {
            var isAdmin = User.Claims.FirstOrDefault(a => a.Type == "IsAdmin").Value.ToLower() == "true" ? true : false;

            if (!isAdmin)//管理员可以获取数据定义库数据
            {
                return(Unauthorized("用户没有权限获取数据定义库"));
            }
            var rm = await _dls.GetDataDefineLibrarysAsync(req);

            return(rm);
        }
Exemple #2
0
        public async Task <BaseResponse> GetDataDefineLibrarysAsync(DataDefineLibraryPageRequest req)
        {
            var ret = _dlr.Find(a => true);

            if (!string.IsNullOrWhiteSpace(req.Search))
            {
                ret = ret.Where(a => a.DataKey.Contains(req.Search) || a.DataName.Contains(req.Search));
            }
            //单个标签查找,第一步先查找包含的id,第二步查找id包含的,如果是多个标签的或查找需要根据标签或
            //Regex r = new Regex(@"(?=(,|\b)1\b)|(?=(,|\b)2\b)")
            if (req.CategoryId != 0)
            {
                string txt = $@"(?=(,|\b){req.CategoryId}\b)";
                Regex  r   = new Regex(@txt);
                var    Ids = _dlr.Find(a => true).ToList().Where(a =>
                {
                    if (a.Category == null)
                    {
                        return(false);
                    }
                    else
                    {
                        return(r.Match(a.Category).Success == true);
                    }
                }).Select(a => a.Id).ToList();
                ret = ret.Where(a => Ids.Contains(a.Id));
            }
            int    Count           = 0;
            string OrderExpression = "";

            if (string.IsNullOrEmpty(req.OrderBy))
            {
                OrderExpression = "Id Asc";
            }
            else
            {
                OrderExpression = string.Format("{0} {1}", req.OrderBy, req.OrderType);
            }
            Count = ret.Count();

            var data = await ret.OrderBy(OrderExpression).Skip((req.PageNo - 1) * req.PageSize).Take(req.PageSize).ToListAsync();

            var dto = _mapper.Map <IEnumerable <DataDefineLibraryDataDto> >(data);

            #region 替换category
            var cr = await _cr.Find(a => true).ToListAsync();

            if (cr.Count > 0)
            {
                foreach (var item in dto)
                {
                    if (item.Category != null && item.Category.Length > 0)
                    {
                        var    cid   = item.Category.Split(',');
                        string cname = "";
                        for (int i = 0; i < cid.Length; i++)
                        {
                            if (cid[i].Trim() != "")
                            {
                                if (cname == "")
                                {
                                    cname += cr.FirstOrDefault(a => a.Id.ToString() == cid[i]).Name;
                                }
                                else
                                {
                                    cname += "," + cr.FirstOrDefault(a => a.Id.ToString() == cid[i]).Name;
                                }
                            }
                        }
                        item.Category = cname;
                    }//end if
                }
            }
            #endregion
            BaseResponse br = new BasePageResponse <IEnumerable <DataDefineLibraryDataDto> >()
            {
                Count       = Count,
                CurrentPage = req.PageNo,
                PageSize    = req.PageSize,
                Success     = true,
                Message     = "获取数据成功",
                Data        = dto,
                TotalPage   = (int)Math.Ceiling((decimal)Count / req.PageSize)
            };
            return(br);
        }