Generates a SwaggerService from a Web API controller or type which is located in a .NET assembly.
        public async Task<string> RunAsync()
        {
            var generator = new WebApiAssemblyToSwaggerGenerator(Settings);

            var service = string.IsNullOrEmpty(ControllerName)
                ? generator.GenerateForAssemblyControllers()
                : generator.GenerateForSingleController(ControllerName);

            return service.ToJson();
        }
        public async Task<string> RunAsync()
        {
            var generator = new WebApiAssemblyToSwaggerGenerator(Settings);

            var controllerNames = ControllerNames.ToList(); 
            if (!string.IsNullOrEmpty(ControllerName))
                controllerNames.Add(ControllerName);

            controllerNames = controllerNames.Distinct().ToList();
            if (!controllerNames.Any())
                controllerNames = generator.GetControllerClasses().ToList();

            var service = generator.GenerateForControllers(controllerNames);
            return service.ToJson();
        }
Example #3
0
        public void When_controller_type_is_not_found_then_type_load_exception_is_thrown()
        {
            //// Arrange
            var settings = new WebApiAssemblyToSwaggerGeneratorSettings
            {
                AssemblyPaths = new[] { @"./NSwag.CodeGeneration.Tests.dll" },
                DefaultUrlTemplate = "api/{controller}/{action}/{id}"
            };

            var generator = new WebApiAssemblyToSwaggerGenerator(settings);

            //// Act
            var document = generator.GenerateForControllers(new[] { "NonExistingClass" }); // Should throw exception

            //// Assert
        }
        private Task LoadAssemblyAsync(bool updateSelectedController)
        {
            return RunTaskAsync(async () =>
            {
                AllControllerNames = await Task.Run(() =>
                {
                    var generator = new WebApiAssemblyToSwaggerGenerator(Command.Settings);
                    return generator.GetControllerClasses();
                });

                if (updateSelectedController)
                {
                    if (ControllerName != null && !AllControllerNames.Contains(ControllerName))
                        ControllerName = AllControllerNames.FirstOrDefault();
                }
            });
        }
        private Task LoadAssemblyAsync(bool updateSelectedController)
        {
            return RunTaskAsync(async () =>
            {
                AllControllerNames = await Task.Run(() =>
                {
                    var generator = new WebApiAssemblyToSwaggerGenerator(Command.Settings);
                    return generator.GetControllerClasses();
                });

                if (ControllerNames != null)
                {
                    var newControllerNames = ControllerNames.ToList();
                    foreach (var controller in newControllerNames.ToArray())
                    {
                        if (!AllControllerNames.Contains(controller))
                            newControllerNames.Remove(controller);
                    }
                    ControllerNames = newControllerNames.ToArray();
                }
                else
                    ControllerNames = new string[] { };
            });
        }
 public async Task<string> GenerateSwaggerAsync()
 {
     return await RunTaskAsync(async () =>
     {
         return await Task.Run(() =>
         {
             var generator = new WebApiAssemblyToSwaggerGenerator(AssemblyPath);
             return generator.Generate(ControllerName, UrlTemplate).ToJson();
         });
     });
 }
        private Task LoadAssembly()
        {
            return RunTaskAsync(async () =>
            {
                AllControllerNames = await Task.Run(() =>
                {
                    var generator = new WebApiAssemblyToSwaggerGenerator(AssemblyPath);
                    return generator.GetControllerClasses();
                });

                ControllerName = AllControllerNames.FirstOrDefault();
            });
        }
 public async Task<string> GenerateSwaggerAsync()
 {
     return await RunTaskAsync(async () =>
     {
         return await Task.Run(() =>
         {
             var generator = new WebApiAssemblyToSwaggerGenerator(AssemblyPath, new JsonSchemaGeneratorSettings { DefaultEnumHandling = DefaultEnumHandling });
             if (SpecifyControllerName)
                 return generator.GenerateForSingleController(ControllerName, UrlTemplate).ToJson();
             else
                 return generator.GenerateForAssemblyControllers(UrlTemplate).ToJson();
         });
     });
 }