public Method Build(IDictionary <string, object> dynamicRaml, string defaultMediaType) { var method = new Method(); new BasicInfoBuilder().Set(dynamicRaml, method); method.Verb = dynamicRaml.ContainsKey("method") ? (string)dynamicRaml["method"] : null; method.Headers = dynamicRaml.ContainsKey("headers") ? new ParametersBuilder(dynamicRaml["headers"] as IDictionary <string, object>).GetAsDictionary() : new Dictionary <string, Parameter>(); method.Responses = dynamicRaml.ContainsKey("responses") ? new ResponsesBuilder(dynamicRaml["responses"] as IDictionary <string, object>).Get(defaultMediaType) : new List <Response>(); method.QueryParameters = dynamicRaml.ContainsKey("queryParameters") ? new ParametersBuilder((IDictionary <string, object>)dynamicRaml["queryParameters"]).GetAsDictionary() : null; method.Body = dynamicRaml.ContainsKey("body") ? new BodyBuilder((IDictionary <string, object>)dynamicRaml["body"]).GetAsDictionary(defaultMediaType) : new Dictionary <string, MimeType>(); method.BaseUriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "baseUriParameters"); method.SecuredBy = GetSecuredBy(dynamicRaml); method.Protocols = ProtocolsBuilder.Get(dynamicRaml); method.Is = GetIs(dynamicRaml); method.Description = dynamicRaml.ContainsKey("description") ? (string)dynamicRaml["description"] : null; method.Annotations = AnnotationsBuilder.GetAnnotations(dynamicRaml); return(method); }
public async Task <RamlDocument> Build(IDictionary <string, object> dynamicRaml, string path = null) { var doc = new RamlDocument(dynamicRaml); doc.Types = new RamlTypesOrderedDictionary(); if (dynamicRaml.ContainsKey("uses")) { var uses = dynamicRaml["uses"] as object[]; if (uses != null) { foreach (var library in uses) { var lib = library as IDictionary <string, object>; if (lib != null) { string filePath; if (path != null) { filePath = Path.Combine(Path.GetDirectoryName(path), (string)lib["value"]); } else { filePath = (string)lib["value"]; } var preffix = (string)lib["key"]; var dynamic = await RamlParser.GetDynamicStructure(filePath); TypeBuilder.AddTypes(doc.Types, (IDictionary <string, object>)dynamic, preffix); } } } } doc.BaseUri = dynamicRaml.ContainsKey("baseUri") ? (string)dynamicRaml["baseUri"] : string.Empty; doc.Title = dynamicRaml.ContainsKey("title") ? (string)dynamicRaml["title"] : string.Empty; doc.Version = dynamicRaml.ContainsKey("version") ? (string)dynamicRaml["version"] : null; doc.MediaType = dynamicRaml.ContainsKey("mediaType") ? (string)dynamicRaml["mediaType"] : null; doc.Documentation = GetDocumentation(dynamicRaml); doc.BaseUriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "baseUriParameters"); doc.SecuredBy = GetSecuredBy(dynamicRaml); doc.Method = dynamicRaml.ContainsKey("method") ? (string)dynamicRaml["method"] : null; doc.Protocols = ProtocolsBuilder.Get(dynamicRaml); doc.SecuritySchemes = GetSecuritySchemes(dynamicRaml, doc.MediaType); doc.ResourceTypes = GetResourceTypes(dynamicRaml, doc.MediaType); doc.Traits = GetTraits(dynamicRaml, doc.MediaType); doc.Schemas = GetSchemas(dynamicRaml); doc.Resources = GetResources(dynamicRaml, doc.ResourceTypes, doc.Traits, doc.MediaType); TypeBuilder.AddTypes(doc.Types, dynamicRaml); doc.AnnotationTypes = AnnotationTypesBuilder.Get(dynamicRaml); doc.Annotations = AnnotationsBuilder.GetAnnotations(dynamicRaml); return(doc); }
public Resource Build(IDictionary <string, object> dynamicRaml) { var resource = new Resource(); new BasicInfoBuilder().Set(dynamicRaml, resource); resource.RelativeUri = dynamicRaml.ContainsKey("relativeUri") ? (string)dynamicRaml["relativeUri"] : null; resource.BaseUriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "baseUriParameters"); resource.UriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "uriParameters"); resource.DisplayName = dynamicRaml.ContainsKey("displayName") ? (string)dynamicRaml["displayName"] : null; resource.Protocols = ProtocolsBuilder.Get(dynamicRaml); resource.Resources = GetResources(dynamicRaml); resource.Methods = dynamicRaml.ContainsKey("methods") ? new MethodsBuilder(((object[])dynamicRaml["methods"]).Cast <IDictionary <string, object> >()).Get() : null; return(resource); }
public Resource Build(IDictionary <string, object> dynamicRaml, IEnumerable <IDictionary <string, ResourceType> > resourceTypes, IEnumerable <IDictionary <string, Method> > traits, string defaultMediaType) { var resource = new Resource(); new BasicInfoBuilder().Set(dynamicRaml, resource); resource.RelativeUri = dynamicRaml.ContainsKey("relativeUri") ? (string)dynamicRaml["relativeUri"] : null; resource.BaseUriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "baseUriParameters"); resource.UriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "uriParameters"); resource.DisplayName = dynamicRaml.ContainsKey("displayName") ? (string)dynamicRaml["displayName"] : null; resource.Protocols = ProtocolsBuilder.Get(dynamicRaml); resource.Resources = GetResources(dynamicRaml, resourceTypes, traits, defaultMediaType); resource.Methods = GetMethods(dynamicRaml, traits, defaultMediaType); resource.Annotations = AnnotationsBuilder.GetAnnotations(dynamicRaml); return(resource); }
public RamlDocument Build(IDictionary <string, object> dynamicRaml) { var doc = new RamlDocument(dynamicRaml); doc.BaseUri = (string)dynamicRaml["baseUri"]; doc.Title = (string)dynamicRaml["title"]; doc.Version = dynamicRaml.ContainsKey("version") ? (string)dynamicRaml["version"] : null; doc.MediaType = dynamicRaml.ContainsKey("mediaType") ? (string)dynamicRaml["mediaType"] : null; doc.Documentation = GetDocumentation(dynamicRaml); doc.BaseUriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "baseUriParameters"); doc.SecuredBy = GetSecuredBy(dynamicRaml); doc.Method = dynamicRaml.ContainsKey("method") ? (string)dynamicRaml["method"] : null; doc.Protocols = ProtocolsBuilder.Get(dynamicRaml); doc.SecuritySchemes = GetSecuritySchemes(dynamicRaml); doc.ResourceTypes = GetResourceTypes(dynamicRaml); doc.Traits = GetTraits(dynamicRaml); doc.Schemas = GetSchemas(dynamicRaml); doc.Resources = GetResources(dynamicRaml); return(doc); }
public RamlDocument Build(IDictionary <string, object> dynamicRaml) { var doc = new RamlDocument(dynamicRaml); doc.Types = new RamlTypesOrderedDictionary(); if (dynamicRaml.ContainsKey("uses")) { var uses = dynamicRaml["uses"] as IDictionary <string, object>; if (uses != null) { foreach (var library in uses) { var lib = library.Value as IDictionary <string, object>; TypeBuilder.AddTypes(doc.Types, lib, library.Key); } } } doc.BaseUri = dynamicRaml.ContainsKey("baseUri") ? (string)dynamicRaml["baseUri"] : string.Empty; doc.Title = dynamicRaml.ContainsKey("title") ? (string)dynamicRaml["title"] : string.Empty; doc.Version = dynamicRaml.ContainsKey("version") ? (string)dynamicRaml["version"] : null; doc.MediaType = dynamicRaml.ContainsKey("mediaType") ? (string)dynamicRaml["mediaType"] : null; doc.Documentation = GetDocumentation(dynamicRaml); doc.BaseUriParameters = ParametersBuilder.GetUriParameters(dynamicRaml, "baseUriParameters"); doc.SecuredBy = GetSecuredBy(dynamicRaml); doc.Method = dynamicRaml.ContainsKey("method") ? (string)dynamicRaml["method"] : null; doc.Protocols = ProtocolsBuilder.Get(dynamicRaml); doc.SecuritySchemes = GetSecuritySchemes(dynamicRaml, doc.MediaType); doc.ResourceTypes = GetResourceTypes(dynamicRaml, doc.MediaType); doc.Traits = GetTraits(dynamicRaml, doc.MediaType); doc.Schemas = GetSchemas(dynamicRaml); doc.Resources = GetResources(dynamicRaml, doc.ResourceTypes, doc.Traits, doc.MediaType); TypeBuilder.AddTypes(doc.Types, dynamicRaml); doc.AnnotationTypes = AnnotationTypesBuilder.Get(dynamicRaml); doc.Annotations = AnnotationsBuilder.GetAnnotations(dynamicRaml); return(doc); }