public IQueryable <InstitutionDto> Institutions(ODataQueryOptions options) { var iso = new IncludeSelectOptions(options); AllowedAnonIncludes(iso, "Departments"); return(Repo.GetInstitutions(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator)); }
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); }
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); } }
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); }
public IQueryable <ParticipantDto> Participants(ODataQueryOptions options) { var iso = new IncludeSelectOptions(options); return(Repo.GetParticipants(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator)); }
public IQueryable <ActivityDto> Activities(ODataQueryOptions options) { var iso = new IncludeSelectOptions(options); return(Repo.Activities(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator)); }
public IQueryable <CourseTypeDto> CourseTypes(ODataQueryOptions options) { var iso = new IncludeSelectOptions(options); return(Repo.GetCourseTypes(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator)); }
public IQueryable <ScenarioResourceDto> ScenarioResources(ODataQueryOptions options) { var iso = new IncludeSelectOptions(options); return(Repo.GetScenarioResources(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator)); }
public IQueryable <ProfessionalRoleDto> ProfessionalRoles(ODataQueryOptions options) { var iso = new IncludeSelectOptions(options); return(Repo.GetProfessionalRoles(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator)); }
public IQueryable <ManikinDto> Manikins(ODataQueryOptions options) { var iso = new IncludeSelectOptions(options); return(Repo.GetManikins(iso.Includes, iso.Selects, IncludeSelectOptions.Seperator)); }