Ejemplo n.º 1
0
        public async Task <IActionResult> QueryDwz([FromBody] QueryDwzViewModel model)
        {
            var result = await dWZServices.Query(model).ConfigureAwait(true);

            var list       = result.Item1;
            var totalCount = result.Item2;

            return(new JsonResult(new ShortUrlsViewModel()
            {
                Data = new ShortUrlsDataModel()
                {
                    List = list?.Select(s => s.ToDataModel()) ?? new List <ShortUrlCreateDataModel>(),
                    TotalCount = totalCount
                }
            }));
        }
        public async Task <Tuple <IEnumerable <ShortUrl>, int> > Query(QueryDwzViewModel model)
        {
            if (model == null)
            {
                return(null);
            }
            var res = context.CommonShortUrlDb;

            if (model.Create != null)
            {
                res = res.Where(s => s.Create > model.Create.Start).Where(s => s.Create < model.Create.End);
            }
            if (model.CreateBy != null)
            {
                res = res.Where(s => s.CreateById == model.CreateBy.Value);
            }
            if (model.Device != null)
            {
                res = res.Where(s => s.Device == model.Device.Value);
            }
            if (model.Key != null)
            {
                res = res.Where(s => s.Key == model.Key.Value);
            }
            if (model.Target != null)
            {
                res = res.Where(s => s.Target.Contains(model.Target.Value));
            }
            if (model.Ip != null)
            {
                res = res.Where(s => s.Ip == model.Ip.Value);
            }
            res = res.OrderByDescending(s => s.Create);
            var result = res.SplitPage(model.Pages);
            var r      = await Task.Run(() => new Tuple <IEnumerable <ShortUrl>, int>(result.Item1, result.Item2)).ConfigureAwait(false);

            return(r);
        }