public Task <PackedList <T> > GetForOrganization <T>(Guid organizationId,
                                                      AccountManagerFilters filters, CommonFilters pagingFilters) where T : OrganizationAccountManagerOutput
 {
     return(Repository.Queryable()
            .ApplyWhereFilters(filters)
            .Where(x => x.OrganizationId == organizationId)
            .PaginateProjection <OrganizationAccountManager, T>(pagingFilters, ProjectionMapping));
 }
 public Task <List <T> > GetForOrganization <T>(Guid organizationId, AccountManagerFilters filters) where T : OrganizationAccountManagerOutput
 {
     return(Repository.Queryable()
            .ApplyWhereFilters(filters)
            .Where(x => x.OrganizationId == organizationId)
            .ProjectTo <T>(ProjectionMapping)
            .ToListAsync());
 }
        public async Task <IActionResult> GetAccountManagerList([FromRoute] Guid organizationId,
                                                                [FromQuery] AccountManagerFilters filters)
        {
            var result = await _accountManagerService
                         .GetForOrganization <AccountManagerOrganizationAccountManagerOutput>(_accountManager.OrganizationId, filters);

            return(Ok(result));
        }
        public async Task <IActionResult> GetAccountManagerStatistics([FromRoute] Guid organizationId,
                                                                      [FromQuery] AccountManagerFilters filters, [FromQuery] CommonFilters pagingFilters)
        {
            var result = await _accountManagerService
                         .GetForOrganization <OrganizationAccountManagerStatistics>(_agencyOwner.OrganizationId, filters, pagingFilters);

            AddPagination(pagingFilters, result.Total);
            return(Ok(result.Data));
        }
        public static Expression <Func <OrganizationAccountManager, bool> > WhereFilter(AccountManagerFilters filters)
        {
            var expr = PredicateBuilder.True <OrganizationAccountManager>();

            return(expr);
        }
 public static IQueryable <OrganizationAccountManager> ApplyWhereFilters(this IQueryable <OrganizationAccountManager> entities,
                                                                         AccountManagerFilters filters)
 {
     return(entities.Where(WhereFilter(filters)));
 }