コード例 #1
0
 public static PagerModel ToPagerModel <T>(GetListResult <T> model, string linkFormat) where T : class
 {
     return(new PagerModel
     {
         CurrentPage = model.GetCurrentPageNumber(),
         LinkFormat = linkFormat,
         PagesCount = model.GetPagesCount(),
         PageSize = model.Count.Value,
     });
 }
コード例 #2
0
        public async Task <GetListResult <WebAppRequestContextLogWithUserModel> > GetLogs <TUser>(WebAppRequestContextLogsSearch model) where TUser : class, ICrocoUser
        {
            var startDate = DateTime.Now;

            var query = Query <WebAppRequestContextLog>()
                        .BuildQuery(model.GetCriterias())
                        .OrderBy(x => x.StartedOn);

            var step1 = (DateTime.Now - startDate).TotalMilliseconds;

            var joinedQuery = from log in query
                              join user in Query <TUser>() on log.UserId equals user.Id into joinedUser
                              from userOrEmpty in joinedUser.DefaultIfEmpty()
                              select new
            {
                Log         = log,
                UserOrEmpty = userOrEmpty,
            };

            var res = await GetListResult <WebAppRequestContextLogWithUserModel> .GetAsync(model, joinedQuery.OrderBy(x => x.Log.StartedOn), a => new WebAppRequestContextLogWithUserModel
            {
                Log = new WebAppRequestContextLogModel
                {
                    Id              = a.Log.Id,
                    FinishedOn      = a.Log.FinishedOn,
                    ParentRequestId = a.Log.ParentRequestId,
                    RequestId       = a.Log.RequestId,
                    StartedOn       = a.Log.StartedOn,
                    Uri             = a.Log.Uri,
                    UserId          = a.Log.UserId
                },
                User = a.UserOrEmpty != null ? new UserNameAndEmailModel
                {
                    Id    = a.UserOrEmpty.Id,
                    Email = a.UserOrEmpty.Email,
                    Name  = a.UserOrEmpty.Name
                } : null
            });

            var step3 = (DateTime.Now - startDate).TotalMilliseconds;

            return(res);
        }
コード例 #3
0
 public static Task <IHtmlContent> RenderPaginationAsync <T>(this IHtmlHelper htmlHelper, GetListResult <T> model, string linkFormat) where T : class
 {
     return(htmlHelper.PartialAsync("~/Views/Components/Pagination.cshtml", PagerModel.ToPagerModel(model, linkFormat)));
 }