コード例 #1
0
        public async Task <QueryResult <FileInfo> > Search(FileInfoQueryCondition queryCondition)
        {
            var result = await this.Cache.Search(queryCondition);

            //if (result != null)
            //{
            //    if(result.Items!=null && result.Items.Any(x=> x.Expire > 0 && this.IsExpire(x))) //处理过期的文件
            //    {
            //        result.Items = result.Items.Where(x => x.Expire == 0 || !this.IsExpire(x)).ToList();
            //    };
            //}
            return(result);
        }
コード例 #2
0
        public async Task <QueryResult <FileInfo> > Search(FileInfoQueryCondition queryCondition)
        {
            // 过期逻辑放到这
            if (string.IsNullOrEmpty(queryCondition.Category))
            {
                return(new QueryResult <FileInfo>());
            }
            var   sortKey = this.GetSortedSetKey(queryCondition.Category);
            Order order   = queryCondition.Sort == SortMode.Descending ? StackExchange.Redis.Order.Descending : StackExchange.Redis.Order.Ascending;

            if (!queryCondition.IsTimeAvailable)
            {
                var total = await this.Database.SortedSetLengthAsync(sortKey);

                var ids = await this.Database.SortedSetRangeByPagingAsync(sortKey, queryCondition.PageIndex, queryCondition.PageSize, order);

                return(new QueryResult <FileInfo>
                {
                    TotalCount = (int)total,
                    Items = await this.LoadFileInfos(ids)
                });
            }
            else
            {
                var start = queryCondition.StartTime.ToTimeStamp();
                var end   = queryCondition.EndTime.ToTimeStamp();
                var total = await this.Database.SortedSetLengthAsync(sortKey, start, end);


                var ids = this.Database.SortedSetRangeByScorePaging(sortKey,
                                                                    start,
                                                                    end,
                                                                    queryCondition.PageIndex,
                                                                    queryCondition.PageSize,
                                                                    Exclude.None,
                                                                    order
                                                                    );

                return(new QueryResult <FileInfo>
                {
                    TotalCount = (int)total,
                    Items = await this.LoadFileInfos(ids)
                });
            }
        }
コード例 #3
0
        public async Task <IHttpActionResult> Search([FromBody] FileInfoQueryCondition queryCondition)
        {
            var result = await this._fileUploadService.Search(queryCondition);

            return(this.JsonResult(result.ToJsonResultData()));
        }
コード例 #4
0
 public Task <QueryResult <FileInfo> > Search(FileInfoQueryCondition queryCondition)
 {
     throw new NotImplementedException();
 }