Esempio n. 1
0
        public IQueryable <InstitutionDto> Institutions(ODataQueryOptions options)
        {
            var iso = new IncludeSelectOptions(options);

            AllowedAnonIncludes(iso, "Departments");
            return(Repo.GetInstitutions(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator));
        }
Esempio n. 2
0
        internal static Node GetToDtoLambda(Type dtoType, CurrentPrincipal currentUser, string[] includes = null, string[] selects = null, char sepChar = defaultSepChar)
        {
            var includeSelects = new IncludeSelectOptions(dtoType, currentUser, includes, selects, sepChar);

            VisitNodes(includeSelects.RequiredMappings);
            return(includeSelects.RequiredMappings);
        }
Esempio n. 3
0
        private void AllowedAnonIncludes(IncludeSelectOptions iso, params string[] allowed)
        {
            var emptyString = new string[0];

            if (!User.Identity.IsAuthenticated && ((iso.Includes ?? emptyString).Any(i => !allowed.Contains(i))) ||
                (iso.Selects ?? emptyString).Any(s => !allowed.Contains(s)))
            {
                throw new HttpResponseException(HttpStatusCode.Unauthorized);
            }
        }
Esempio n. 4
0
        public IQueryable <CourseDto> Courses(ODataQueryOptions options)
        {
            var iso       = new IncludeSelectOptions(options);
            var returnVar = Repo.GetCourses(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator);

            //???working now with EnableMappedBreezeQuery????
            //hack alert - currently options.applyto does not handle includes which are deeper than a null parent
            //the following hack works around this for a very specific use scenario
            //this is about as ugly as hacks get, so steel yourself before reading ahead

            /*
             * if (iso.Includes != null && iso.Includes.Any(i=>i.Contains("Activity/")))
             * {
             *  var exp = (BinaryOperatorNode)options.Filter.FilterClause.Expression;
             *  System.Diagnostics.Debug.Assert(exp.OperatorKind == Microsoft.Data.OData.Query.BinaryOperatorKind.Equal);
             *  System.Diagnostics.Debug.Assert(((SingleValuePropertyAccessNode)exp.Left).Property.Name == "Id");
             *  Guid id = (Guid)((ConstantNode)exp.Right).Value;
             *  //todo fix this method up so that the query isn't being applied twice
             *  return returnVar.Where(c=>c.Id==id).ToList().AsQueryable();
             * }
             */
            return(returnVar);
        }
Esempio n. 5
0
        public IQueryable <ParticipantDto> Participants(ODataQueryOptions options)
        {
            var iso = new IncludeSelectOptions(options);

            return(Repo.GetParticipants(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator));
        }
Esempio n. 6
0
        public IQueryable <ActivityDto> Activities(ODataQueryOptions options)
        {
            var iso = new IncludeSelectOptions(options);

            return(Repo.Activities(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator));
        }
Esempio n. 7
0
        public IQueryable <CourseTypeDto> CourseTypes(ODataQueryOptions options)
        {
            var iso = new IncludeSelectOptions(options);

            return(Repo.GetCourseTypes(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator));
        }
Esempio n. 8
0
        public IQueryable <ScenarioResourceDto> ScenarioResources(ODataQueryOptions options)
        {
            var iso = new IncludeSelectOptions(options);

            return(Repo.GetScenarioResources(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator));
        }
Esempio n. 9
0
        public IQueryable <ProfessionalRoleDto> ProfessionalRoles(ODataQueryOptions options)
        {
            var iso = new IncludeSelectOptions(options);

            return(Repo.GetProfessionalRoles(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator));
        }
Esempio n. 10
0
        public IQueryable <ManikinDto> Manikins(ODataQueryOptions options)
        {
            var iso = new IncludeSelectOptions(options);

            return(Repo.GetManikins(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator));
        }