Beispiel #1
0
        public virtual async Task <ActionResult> Index(int p = 1, int pageSize = 10, string orderBy = "Id desc", string search = "")
        {
            var spec = UserFilterSpecification.Create <TDto>(HttpContext.Request.Query);

            if (!spec.IsValid)
            {
                return(HandleReadException());
            }

            var cts = TaskHelper.CreateChildCancellationTokenSource(ClientDisconnectedToken());

            try
            {
                var dataTask = Service.SearchAsync(cts.Token, null, search, spec.ToExpression(), orderBy, p, pageSize, false, null);

                await TaskHelper.WhenAllOrException(cts, dataTask);

                var data = dataTask.Result;

                var response = new WebApiPagedResponseDto <TDto>
                {
                    Page     = p,
                    PageSize = pageSize,
                    Records  = data.TotalCount,
                    Rows     = data.ToList(),
                    OrderBy  = orderBy,
                    Search   = search
                };

                ViewBag.Search   = search;
                ViewBag.Page     = p;
                ViewBag.PageSize = pageSize;
                ViewBag.OrderBy  = orderBy;

                ViewBag.PageTitle = Title;
                ViewBag.Admin     = Admin;

                return(View("~/Views/Bootstrap4/List.cshtml", response));
                //return View("List", response);
            }
            catch
            {
                return(HandleReadException());
            }
        }