public ActionResult <TweezersMultipleResults <TweezersObject> > List([FromQuery] bool internalObj, [FromQuery] int skip = 0, [FromQuery] int take = 10, [FromQuery] string sortField = "", [FromQuery] string direction = "asc") { return(WrapWithAuthorizationCheck(() => { IEnumerable <TweezersObject> allMetadata = TweezersSchemaFactory.GetAll(includeInternal: internalObj); if (SchemaManagement.CanChangeSchema && internalObj) { allMetadata = allMetadata.Concat(new[] { SchemaManagement.SchemaMetadata }); } allMetadata = allMetadata .Skip(skip) .Take(take) .ToArray(); string sortFieldInternal = string.IsNullOrWhiteSpace(sortField) ? "collectionName" : sortField; IEnumerable <TweezersObject> sortedMetadata = direction == "asc" ? allMetadata.OrderBy(m => JObject.FromObject(m, Serializer.JsonSerializer)[sortFieldInternal].ToString()) : allMetadata.OrderByDescending(m => JObject.FromObject(m, Serializer.JsonSerializer)[sortFieldInternal].ToString()); return TweezersOk(TweezersMultipleResults <TweezersObject> .Create(sortedMetadata, allMetadata.Count())); }, "List", DefaultPermission.None, TweezersSchemaKey)); }
private static TweezersObject CreateRolesSchema() { TweezersObject rolesInitialSchema = Schemas.RolesMetaJson.Deserialize <TweezersObject>(); IEnumerable <TweezersObject> additionalInternalSchemas = new[] { rolesInitialSchema }; if (SchemaManagement.CanChangeSchema) { additionalInternalSchemas = additionalInternalSchemas.Append(SchemaManagement.SchemaMetadata); } IEnumerable <TweezersObject> otherObjects = TweezersSchemaFactory.GetAll(true).Concat(additionalInternalSchemas); TweezersObject permissionsObjectReference = rolesInitialSchema.Fields["permissions"].FieldProperties.ObjectReference; foreach (TweezersObject @object in otherObjects) { TweezersFieldProperties fieldProperties = Schemas.PermissionTemplateFieldProperties.Deserialize <TweezersFieldProperties>(); fieldProperties.Name = @object.CollectionName; fieldProperties.DisplayName = @object.PluralName; if (permissionsObjectReference.Fields.ContainsKey(@object.CollectionName)) { continue; } permissionsObjectReference.Fields.Add(@object.CollectionName, new TweezersField() { FieldProperties = fieldProperties }); } return(rolesInitialSchema); }