Esempio n. 1
0
        public async Task <ResultsAndTotalCount <WalletDTO> > GetResultAndTotalCountWalletsAsync(string propertyValueContains,
                                                                                                 OrderBySettings <Wallet> orderBySettings,
                                                                                                 int skip, int take)
        {
            Expression <Func <Wallet, bool> > filterExpression;

            if (string.IsNullOrEmpty(propertyValueContains))
            {
                filterExpression = null;
            }
            else
            {
                string uppercasePropertyValueContains = propertyValueContains.ToUpper();
                filterExpression = Wallet
                                   => Wallet.PersonalData.FirstName.ToUpper().Contains(uppercasePropertyValueContains) ||
                                   Wallet.PersonalData.LastName.ToUpper().Contains(uppercasePropertyValueContains) ||
                                   Wallet.UniqueMasterCitizenNumber.Value.ToUpper().Contains(uppercasePropertyValueContains) ||
                                   Wallet.SupportedBank.Name.ToUpper().Contains(uppercasePropertyValueContains);
            }

            ResultsAndTotalCount <Wallet> resultsAndTotalCount = await _unitOfWork
                                                                 .WalletRepository
                                                                 .GetResultsAndTotalCountAsync(
                filterExpression,
                orderBySettings,
                skip,
                take,
                Wallet => Wallet.SupportedBank
                );

            List <WalletDTO> wallets = resultsAndTotalCount.Results.ToWalletDTOs().ToList();

            return(new ResultsAndTotalCount <WalletDTO>(wallets, resultsAndTotalCount.TotalCount));
        }
Esempio n. 2
0
        public async Task <ResultsAndTotalCount <SupportedBankDTO> > GetResultAndTotalCountSupportedBanksAsync(
            string propertyValueContains,
            OrderBySettings <SupportedBank> orderBySettings = null,
            int skip = 0,
            int?take = null)
        {
            Expression <Func <SupportedBank, bool> > filterExpression;

            if (string.IsNullOrEmpty(propertyValueContains))
            {
                filterExpression = null;
            }
            else
            {
                string uppercasePropertyValueContains = propertyValueContains.ToUpper();
                filterExpression = SupportedBank
                                   => SupportedBank.Name.ToUpper().Contains(uppercasePropertyValueContains);
            }

            ResultsAndTotalCount <SupportedBank> resultsAndTotalCount = await _unitOfWork
                                                                        .SupportedBankRepository
                                                                        .GetResultsAndTotalCountAsync(
                filterExpression,
                orderBySettings,
                skip,
                take
                );

            List <SupportedBankDTO> supportedBanks = resultsAndTotalCount.Results.ToSupportedBankDTOs().ToList();

            return(new ResultsAndTotalCount <SupportedBankDTO>(supportedBanks, resultsAndTotalCount.TotalCount));
        }
Esempio n. 3
0
        public async Task <ResultsAndTotalCount <TEntity> > GetResultsAndTotalCountAsync(
            Expression <Func <TEntity, bool> > filterExpression = null,
            OrderBySettings <TEntity> orderBySettings           = null,
            int skip = 0,
            int?take = null,
            params Expression <Func <TEntity, object> >[] includes
            )
        {
            IQueryable <TEntity> query = DbSet.AsQueryable();

            if (filterExpression != null)
            {
                query = query.Where(filterExpression);
            }

            int?totalCount = (skip > 0 || take.HasValue)
                ? (int?)await query.CountAsync()
                : (int?)null;

            if (orderBySettings != null)
            {
                query = orderBySettings.IsAscending
                    ? query.OrderBy(orderBySettings.PropertySelector)
                    : query.OrderByDescending(orderBySettings.PropertySelector);
            }

            if (skip > 0)
            {
                query = query.Skip(skip);
            }

            if (take.HasValue)
            {
                query = query.Take(take.Value);
            }

            foreach (Expression <Func <TEntity, object> > includeExpression in includes)
            {
                query = query.Include(includeExpression);
            }

            ICollection <TEntity> entities = await query.ToListAsync();

            if (!totalCount.HasValue)
            {
                totalCount = entities.Count;
            }

            ResultsAndTotalCount <TEntity> resultsAndTotalCountDTO = new ResultsAndTotalCount <TEntity>(entities, totalCount.Value);

            return(resultsAndTotalCountDTO);
        }