Exemple #1
0
        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);
        }