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)); }
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); }
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)); }
public static IQueryable <T> ApplyWhereFilters <T>(this IQueryable <T> entities, ProposalFilters filters) where T : FixedPriceProposal { return(entities.Where(WhereFilter <T>(filters))); }
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)); }