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); }