示例#1
0
 public Task <PackedList <T> > GetStories <T>(IOrganizationCustomer cu, StoryFilters filters)
     where T : CustomerStoryOutput
 {
     return(Repository.Queryable().ForOrganizationCustomer(cu)
            .ApplyWhereFilters(filters)
            .PaginateProjection <Story, T>(filters, ProjectionMapping));
 }
示例#2
0
 public Task <PackedList <T> > GetStories <T>(IProviderAgencyOwner ao, StoryFilters filters
                                              ) where T : AgencyOwnerStoryOutput
 {
     return(Repository.Queryable().ForAgencyOwner(ao)
            .ApplyWhereFilters(filters)
            .PaginateProjection <Story, T>(filters, ProjectionMapping));
 }
示例#3
0
 public Task <PackedList <T> > GetStories <T>(IOrganizationAccountManager am, StoryFilters filters
                                              ) where T : AccountManagerStoryOutput
 {
     return(Repository.Queryable().ForOrganizationAccountManager(am)
            .ApplyWhereFilters(filters)
            .PaginateProjection <Story, T>(filters, ProjectionMapping));
 }
示例#4
0
        public async Task <IActionResult> GetAssignedStories([FromRoute] Guid organizationId,
                                                             [FromQuery] StoryFilters filters)
        {
            var stories = await _storyService.GetStories <ContractorStoryOutput>(_contractor, filters);

            AddPagination(filters, stories.Total);
            return(Ok(stories.Data));
        }
示例#5
0
        public static Expression <Func <Story, bool> > FromFilter(StoryFilters filters)
        {
            var expr = PredicateBuilder.True <Story>();

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

            return(expr);
        }
示例#6
0
        private static Expression <Func <Story, bool> > WhereFilter(StoryFilters filters)
        {
            var expr = PredicateBuilder.True <Story>();

            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.ContractorId.HasValue)
            {
                expr = expr.And(x => x.ContractorId == filters.ContractorId);
            }

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

            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.ProjectId.HasValue)
            {
                expr = expr.And(x => x.ProjectId == filters.ProjectId);
            }

            if (filters.StoryStatus.Any())
            {
                expr = expr.And(x => filters.StoryStatus.Contains(x.Status));
            }

            return(expr);
        }
示例#7
0
 public static IQueryable <Story> ApplyWhereFilters(this IQueryable <Story> entities,
                                                    StoryFilters filters)
 {
     return(entities.Where(WhereFilter(filters)));
 }