Exemplo n.º 1
0
 public IQueryable <Location> Search(IQueryable <Location> query, LocationFilters filters)
 {
     if (!string.IsNullOrWhiteSpace(filters.Name))
     {
         query = query.Where(o => o.LocalName.Contains(filters.Name));
     }
     return(query);
 }
        public LocationFilters GetFilters()
        {
            var filters = new LocationFilters()
            {
                Page  = Convert.ToInt32(HttpContext.Request.Query["page"]),
                Limit = Convert.ToInt32(HttpContext.Request.Query["limit"]),
                Name  = HttpContext.Request.Query["name"],
                Code  = HttpContext.Request.Query["code"],
            };

            return(filters);
        }
Exemplo n.º 3
0
        public async Task <ResponseModel <LocationViewModel> > GetList(LocationFilters filters, SortCol sortCol
                                                                       , AccountViewModel account)
        {
            var query = _context.Location.Where(o => o.IsDelete == 0 && o.CompanyId == account.CompanyId);

            query = Search(query, filters);
            query = Sort(query, sortCol);
            var vms = await query.Skip((filters.Page - 1) *filters.Limit).Take(filters.Limit)
                      .ProjectTo <LocationViewModel>().ToListAsync();

            ResponseModel <LocationViewModel> result = new ResponseModel <LocationViewModel>();

            result.status  = 0;
            result.message = "";
            result.total   = query.Count();
            result.data    = vms;
            return(result);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 执行过滤器
        /// </summary>
        /// <returns></returns>
        private static MiddlewareParameter Execute(MiddlewareParameter middlareResult)
        {
            //全局开始过滤器
            GlobalPreFilters.ForEach(filter => filter(middlareResult));

            //处理文本消息
            if (middlareResult.Input.RequestBaseModel.MsgType == Configurations.Current.MessageType.Text)
            {
                var textReq = middlareResult.Input.GetRequestModel <TextRequest>();
                TextFilters.Execute(textReq, middlareResult);
            }

            //处理图片消息
            if (middlareResult.Input.RequestBaseModel.MsgType == Configurations.Current.MessageType.Image)
            {
                var imageReq = middlareResult.Input.GetRequestModel <ImageRequest>();
                ImageFilters.Execute(imageReq, middlareResult);
            }

            //位置信息
            if (middlareResult.Input.RequestBaseModel.MsgType == Configurations.Current.MessageType.Location)
            {
                var locationReq = middlareResult.Input.GetRequestModel <LocationRequest>();
                LocationFilters.Execute(locationReq, middlareResult);
            }

            //事件
            if (middlareResult.Input.RequestBaseModel.MsgType == Configurations.Current.MessageType.Event)
            {
                var eb = middlareResult.Input.GetRequestModel <EventBase>();
                //普通过滤器
                EventFileters.Execute(eb, middlareResult);

                if (eb.Event == Configurations.Current.EventType.Click)
                {
                    //单击菜单事件
                    var clickReq = middlareResult.Input.GetRequestModel <ClickMenuRequest>();
                    ClickFilters.Execute(clickReq, middlareResult);
                }
                if (eb.Event == Configurations.Current.EventType.Scan)
                {
                    //扫描二维码事件
                    var scanReq = middlareResult.Input.GetRequestModel <ScanQrRequest>();
                    ScanQrFilters.Execute(scanReq, middlareResult);
                }
                if (eb.Event == Configurations.Current.EventType.Location)
                {
                    //位置事件
                    var positionReq = middlareResult.Input.GetRequestModel <PositionRequest>();
                    PositionFilter.Execute(positionReq, middlareResult);
                }
            }
            //执行 语音识别结果 过滤器
            if (middlareResult.Input.RequestBaseModel.MsgType == Configurations.Current.MessageType.Voice)
            {
                var voiceReq = middlareResult.Input.GetRequestModel <VoiceRequest>();
                VoiceFilters.Execute(voiceReq, middlareResult);
            }

            //全局结束过滤器
            GlobalEndFilters.ForEach(filter => filter(middlareResult));

            return(middlareResult);
        }