Esempio n. 1
0
        private ClientGeneratorMethod BuildClassMethod(string url, Method method, Resource resource)
        {
            var parentUrl = UrlGeneratorHelper.GetParentUri(url, resource.RelativeUri);

            var generatedMethod = new ClientGeneratorMethod
            {
                Name        = NetNamingMapper.GetMethodName(method.Verb ?? "Get" + resource.RelativeUri),
                ReturnType  = GetReturnType(GeneratorServiceHelper.GetKeyForResource(method, resource, parentUrl), method, resource, url),
                Parameter   = GetParameter(GeneratorServiceHelper.GetKeyForResource(method, resource, parentUrl), method, resource, url),
                Comment     = GetComment(resource, method, url),
                Url         = url,
                Verb        = NetNamingMapper.Capitalize(method.Verb),
                Parent      = null,
                UseSecurity =
                    raml.SecuredBy != null && raml.SecuredBy.Any() ||
                    resource.Methods.Any(m => m.Verb == method.Verb && m.SecuredBy != null && m.SecuredBy.Any()),
                RequestContentTypes  = method.Body.Keys.ToArray(),
                ResponseContentTypes = method.Responses != null?method.Responses.Where(r => r.Body != null).SelectMany(r => r.Body.Keys).ToArray() : new string[0]
            };

            // look in traits

            // look in resource types

            return(generatedMethod);
        }
Esempio n. 2
0
        private ControllerMethod BuildControllerMethod(string url, Method method, Resource resource, ControllerObject parent, IDictionary <string, Parameter> parentUriParameters)
        {
            var relativeUri = UrlGeneratorHelper.GetRelativeUri(url, parent.PrefixUri);

            var parentUrl = UrlGeneratorHelper.GetParentUri(url, resource.RelativeUri);

            string b = resource.Methods.FirstOrDefault(m => m.Verb == method.Verb && m.SecuredBy != null && m.SecuredBy.Any()).SecuredBy.FirstOrDefault();

            return(new ControllerMethod
            {
                Name = NetNamingMapper.GetMethodName(method.Verb ?? "Get" + resource.RelativeUri),
                Parameter = GetParameter(GeneratorServiceHelper.GetKeyForResource(method, resource, parentUrl), method, resource, url),
                UriParameters = uriParametersGenerator.GetUriParameters(resource, url, parentUriParameters),
                ReturnType = GetReturnType(GeneratorServiceHelper.GetKeyForResource(method, resource, parentUrl), method, resource, url),
                Comment = GetComment(resource, method, url),
                Url = relativeUri,
                Verb = NetNamingMapper.Capitalize(method.Verb),
                Parent = null,
                UseSecurity =
                    raml.SecuredBy != null && raml.SecuredBy.Any() ||
                    resource.Methods.Any(m => m.Verb == method.Verb && m.SecuredBy != null && m.SecuredBy.Any()),
                SecuredBy =
                    raml.SecuredBy ??
                    resource.Methods.FirstOrDefault(m => m.Verb == method.Verb && m.SecuredBy != null && m.SecuredBy.Any()).SecuredBy,
                SecurityParameters = GetSecurityParameters(raml, method)
            });
        }
Esempio n. 3
0
        private ClientGeneratorMethod BuildClassMethod(string url, Operation operation, RAML.Parser.Model.EndPoint resource, string modelsNamespace)
        {
            var parentUrl = UrlGeneratorHelper.GetParentUri(url, resource.Path);

            //TODO: check
            var responseContentTypes = operation.Responses != null?
                                       operation.Responses.Where(r => r.Payloads != null).SelectMany(r => r.Payloads).Select(p => p.MediaType).ToArray()
                                           : new string[0];

            var generatedMethod = new ClientGeneratorMethod
            {
                ModelsNamespace      = modelsNamespace,
                Name                 = NetNamingMapper.GetMethodName(operation.Method ?? "Get" + resource.Path),
                ReturnType           = GetReturnType(operation, resource, url),
                Parameter            = GetParameter(GeneratorServiceHelper.GetKeyForResource(operation, resource), operation, resource, url),
                Comment              = GetComment(resource, operation, url),
                Url                  = url,
                Verb                 = NetNamingMapper.Capitalize(operation.Method),
                Parent               = null,
                UseSecurity          = resource.Operations.Any(m => m.Method == operation.Method && m.Security != null && m.Security.Any()),
                RequestContentTypes  = operation.ContentType,
                ResponseContentTypes = responseContentTypes
            };

            // look in traits

            // look in resource types

            return(generatedMethod);
        }
Esempio n. 4
0
        private ControllerMethod BuildControllerMethod(string url, Operation method, Parser.Model.EndPoint resource, ControllerObject parent,
                                                       IDictionary <string, Parameter> parentUriParameters, string modelsNamespace)
        {
            var relativeUri = UrlGeneratorHelper.GetRelativeUri(url, parent.PrefixUri);

            var parentUrl = UrlGeneratorHelper.GetParentUri(url, resource.Path);

            var operationWithSecurity = resource.Operations.FirstOrDefault(m => m.Method == method.Method && m.Security != null &&
                                                                           m.Security.Any());
            var securedBy = operationWithSecurity?.Security.Select(s => s.Name).ToArray();

            return(new ControllerMethod
            {
                ModelsNamespace = modelsNamespace,
                Name = NetNamingMapper.GetMethodName(method.Method ?? "Get" + resource.Path),
                Parameter = GetParameter(GeneratorServiceHelper.GetKeyForResource(method, resource), method, resource, url),
                UriParameters = uriParametersGenerator.GetUriParameters(resource, url, parentUriParameters),
                ResponseStatusCode = method.Responses != null && method.Responses.Count() == 1 ? method.Responses.First().StatusCode : null,
                ReturnType = GetReturnType(method, resource, url),
                Comment = GetComment(resource, method, url),
                Url = relativeUri,
                Verb = NetNamingMapper.Capitalize(method.Method),
                Parent = null,
                UseSecurity = resource.Operations.Any(m => m.Method == method.Method && m.Security != null && m.Security.Any()),
                SecuredBy = securedBy,
                SecurityParameters = GetSecurityParameters(method)
            });
        }