Exemple #1
0
        public async Task <PagedResults <PasswordSiteModel> > Handle(GetPasswordSiteListRequest request, CancellationToken cancellationToken)
        {
            var user = await userManager.FindByNameAsync(request.GetUserName());

            var totalPasswordList = await passwordSiteRepository.GetAllPasswordsCount(user.Id, request.SearchValue);

            var passwordList = await passwordSiteRepository.GetAllPasswords(user.Id, request.SearchValue, request.SortParams, request.PageParams);

            var passwordSiteModelList = passwordList.Select(x => new PasswordSiteModel()
            {
                NameSite       = x.NameSite,
                Password       = x.Password,
                UserNameSite   = x.UserNameSite,
                PasswordSiteId = x.Id
            });

            var inmutableList = ImmutableList.CreateRange(passwordSiteModelList);

            return(PagedResults.Create(inmutableList, totalPasswordList));
        }
Exemple #2
0
        private static async Task <PagedResults <TEntity> > PaginateAsync <TEntity, TQuery>(this IMongoQueryable <TEntity> collection,
                                                                                            int page, int resultsPerPage, string orderbyKey, SortOrder sortOrder)
        {
            page           = page <= 0 ? 1 : page;
            resultsPerPage = resultsPerPage <= 0 ? 10 : resultsPerPage;

            var isEmpty = await collection.AnyAsync() == false;

            if (isEmpty)
            {
                return(PagedResults <TEntity> .Empty);
            }


            var totalResults = await collection.CountAsync();

            var totalPages = (int)(totalResults / resultsPerPage) + 1;

            var skip = (page - 1) * resultsPerPage;

            var data = await collection.OrderData(orderbyKey, sortOrder).Skip(skip).Take(resultsPerPage).ToListAsync();

            return(PagedResults <TEntity> .Create(data, page, resultsPerPage, totalPages, totalResults));
        }