Пример #1
0
        public async Task <IActionResult> GetProposals([FromRoute] Guid organizationId,
                                                       [FromQuery] ProposalFilters filters)
        {
            var p = await _proposalService.GetFixedPriceProposals <AccountManagerFixedPriceProposalOutput>(_accountManager, filters);

            AddPagination(filters, p.Total);
            return(Ok(p.Data));
        }
Пример #2
0
        private static Expression <Func <T, bool> > WhereFilter <T>(ProposalFilters filters)
            where T : FixedPriceProposal
        {
            var expr = PredicateBuilder.True <T>();

            if (filters.CustomerId.HasValue)
            {
                expr = expr.And(x => x.Project.CustomerId == filters.CustomerId);
            }

            if (filters.CustomerOrganizationId.HasValue)
            {
                expr = expr.And(x => x.Project.CustomerOrganizationId == filters.CustomerOrganizationId);
            }

            if (filters.ProjectManagerId.HasValue)
            {
                expr = expr.And(x => x.Project.ProjectManagerId == filters.ProjectManagerId);
            }

            if (filters.ProjectManagerOrganizationId.HasValue)
            {
                expr = expr.And(x => x.Project.ProjectManagerOrganizationId == filters.ProjectManagerOrganizationId);
            }

            if (filters.AccountManagerId.HasValue)
            {
                expr = expr.And(x => x.Project.AccountManagerId == filters.AccountManagerId);
            }

            if (filters.AccountManagerOrganizationId.HasValue)
            {
                expr = expr.And(x => x.Project.AccountManagerOrganizationId == filters.AccountManagerOrganizationId);
            }

            if (filters.CustomerId.HasValue)
            {
                expr = expr.And(x => x.Project.CustomerId == filters.CustomerId);
            }

            if (filters.CustomerOrganizationId.HasValue)
            {
                expr = expr.And(x => x.Project.CustomerOrganizationId == filters.CustomerOrganizationId);
            }

            if (filters.ProjectId.HasValue)
            {
                expr = expr.And(x => x.Project.Id == filters.ProjectId);
            }


            return(expr);
        }
Пример #3
0
 public Task <PackedList <T> > GetFixedPriceProposals <T>(IOrganizationAccountManager am, ProposalFilters filters
                                                          ) where T : AccountManagerFixedPriceProposalOutput
 {
     return(Repository.Queryable()
            .ForOrganizationAccountManager(am)
            .ApplyWhereFilters(filters)
            .PaginateProjection <FixedPriceProposal, T>(filters, ProjectionMapping));
 }
Пример #4
0
 public static IQueryable <T> ApplyWhereFilters <T>(this IQueryable <T> entities,
                                                    ProposalFilters filters) where T : FixedPriceProposal
 {
     return(entities.Where(WhereFilter <T>(filters)));
 }
Пример #5
0
 public Task <PackedList <T> > GetFixedPriceProposals <T>(IProviderAgencyOwner ao, ProposalFilters filters) where T : AgencyOwnerFixedPriceProposalOutput
 {
     return(Repository.Queryable()
            .ForAgencyOwner(ao)
            .ApplyWhereFilters(filters)
            .PaginateProjection <FixedPriceProposal, T>(filters, ProjectionMapping));
 }