Ejemplo n.º 1
0
 private static GraphIdentifier CreateGraphIdentifier(GraphVersion version, IEdmModel model, IEdmSchemaElement element)
 {
     return(new GraphIdentifier
     {
         Version = version,
         Name = element.Name,
         Description = model.GetDescriptionAnnotation(element),
         Namespace = element.Namespace,
         Kind = ((IEdmType)element).TypeKind.ToString()
     });
 }
Ejemplo n.º 2
0
 private static GraphIdentifier CreateIdentifier(GraphVersion version, IEdmModel model, IEdmStructuralProperty property)
 {
     return(new GraphIdentifier()
     {
         Version = version,
         Name = property.Name,
         Description = model.GetDescriptionAnnotation(property),
         Kind = $"Property ({property.Type.ShortQualifiedName()})",
         Type = property.DeclaringType.ToString()
     });
 }
Ejemplo n.º 3
0
        public async Task <IEnumerable <GraphIdentifier> > GetVocab(GraphVersion version = GraphVersion.V1)
        {
            Uri csdlurl = null;

            switch (version)
            {
            case GraphVersion.Beta:
                csdlurl = new Uri("https://raw.githubusercontent.com/microsoftgraph/msgraph-metadata/master/clean_beta_metadata/cleanMetadataWithDescriptionsbeta.xml");
                break;

            case GraphVersion.V1:
            default:
                csdlurl = new Uri("https://raw.githubusercontent.com/microsoftgraph/msgraph-metadata/master/clean_v10_metadata/cleanMetadataWithDescriptionsv1.0.xml");
                break;
            }
            var identifiers = new List <GraphIdentifier>();
            var model       = await GetEdmModel(csdlurl);

            foreach (var element in model.SchemaElements)
            {
                if (element.SchemaElementKind == EdmSchemaElementKind.TypeDefinition)
                {
                    IEdmType edmType = (IEdmType)element;
                    switch (edmType.TypeKind)
                    {
                    case EdmTypeKind.Complex:
                        identifiers.Add(CreateGraphIdentifier(version, model, element));
                        break;

                    case EdmTypeKind.Entity:
                        identifiers.Add(CreateGraphIdentifier(version, model, element));
                        var edmStructuredType = edmType as IEdmStructuredType;
                        foreach (var property in edmStructuredType.DeclaredStructuralProperties())
                        {
                            identifiers.Add(CreateIdentifier(version, model, property));
                        }
                        break;

                    case EdmTypeKind.Enum:     // enum type
                        identifiers.Add(CreateGraphIdentifier(version, model, element));
                        break;

                    //case EdmTypeKind.TypeDefinition: // type definition
                    //    return context.CreateSchemaTypeDefinitionSchema((IEdmTypeDefinition)edmType);

                    case EdmTypeKind.None:
                    default:
                        break;
                    }
                }
            }
            return(identifiers);
        }
Ejemplo n.º 4
0
 public GraphExplorerSnippetsController(IOptions <GraphVersion> settings)
 {
     this.GraphVersion = settings.Value;
 }