Exemplo n.º 1
0
        public IQueryable <ItProject> GetProjects(OrganizationDataQueryParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            return(_repository.AsQueryable().ByOrganizationDataQueryParameters(parameters));
        }
Exemplo n.º 2
0
        public IQueryable <ItSystem> GetUnusedSystems(OrganizationDataQueryParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            var idsOfSystemsInUse = GetIdsOfSystemsInUse(parameters.ActiveOrganizationId);

            return(GetSystems(parameters).ExceptEntitiesWithIds(idsOfSystemsInUse));
        }
Exemplo n.º 3
0
        public static IQueryable <T> ByOrganizationDataQueryParameters <T>(
            this IQueryable <T> result,
            OrganizationDataQueryParameters parameters)
            where T : class, IHasAccessModifier, IOwnedByOrganization
        {
            var activeOrganizationId = parameters.ActiveOrganizationId;
            var dataAccessLevel      = parameters.DataAccessLevel;

            //Apply query breadth
            switch (parameters.Breadth)
            {
            case OrganizationDataQueryBreadth.TargetOrganization:
                return(result.ByOrganizationId(activeOrganizationId, dataAccessLevel.CurrentOrganization));

            case OrganizationDataQueryBreadth.IncludePublicDataFromOtherOrganizations:
                return(result.ByOrganizationDataAndPublicDataFromOtherOrganizations(activeOrganizationId, dataAccessLevel.CurrentOrganization, dataAccessLevel.CrossOrganizational));

            default:
                throw new ArgumentOutOfRangeException(nameof(parameters.Breadth));
            }
        }
Exemplo n.º 4
0
        public IQueryable <ItSystem> GetSystems(OrganizationDataQueryParameters parameters = null)
        {
            var itSystems = _systemRepository.AsQueryable();

            return(parameters?.Transform(p => itSystems.ByOrganizationDataQueryParameters(p)) ?? itSystems);
        }
 private void ExpectGetUnusedSystemsReturns(OrganizationDataQueryParameters expectedQuery, IQueryable <ItSystem> expectedResult)
 {
     _systemRepository.Setup(x => x.GetUnusedSystems(expectedQuery)).Returns(expectedResult);
 }