private static async Task <WebApiGeneratorModel> GetSchemaTestsGeneratedModel() { var raml = await new RamlParser().LoadAsync("files/schematests.raml"); var model = new WebApiGeneratorService(raml, "TestNs").BuildModel(); return(model); }
public void ScaffoldToProject(RamlChooserActionParams parameters, Project proj) { Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); var data = parameters.Data; if (data == null || data.RamlDocument == null) { return; } var model = new WebApiGeneratorService(data.RamlDocument, parameters.ControllersNamespace, parameters.ModelsNamespace).BuildModel(); var unitTestsFolderItem = VisualStudioAutomationHelper.AddFolderIfNotExists(proj, UnitTestsFolderName); var unitTestsFolderPath = Path.GetDirectoryName(proj.FullName) + Path.DirectorySeparatorChar + UnitTestsFolderName + Path.DirectorySeparatorChar; var templates = new[] { UnitTestsControllerTemplateName, UnitTestsControllerImplementationTemplateName, ModelTemplateName, EnumTemplateName }; if (!templatesManager.ConfirmWhenIncompatibleServerTemplate(unitTestsFolderPath, templates)) { return; } var extensionPath = Path.GetDirectoryName(GetType().Assembly.Location) + Path.DirectorySeparatorChar; AddOrUpdateUnitTestsControllerBase(parameters, unitTestsFolderPath, model, unitTestsFolderItem, extensionPath); AddOrUpdateUnitTestsControllerImplementations(parameters, unitTestsFolderPath, proj, model, unitTestsFolderItem, extensionPath); }
private static async Task <WebApiGeneratorModel> GetRootGeneratedModel() { var raml = await new RamlParser().LoadAsync("files/root.raml"); var model = new WebApiGeneratorService(raml, "TargetNamespace").BuildModel(); return(model); }
public static RamlData GetRamlData(string ramlSource, string targetNamespace) { try { var ramlInfo = RamlInfoService.GetRamlInfo(ramlSource); if (ramlInfo.HasErrors) { MessageBox.Show(ramlInfo.ErrorMessage); return(null); } var model = new WebApiGeneratorService(ramlInfo.RamlDocument).BuildModel(); var filename = Path.GetFileName(ramlSource); if (string.IsNullOrWhiteSpace(filename)) { filename = "source.raml"; } return(new RamlData(model, ramlInfo.RamlContents, filename)); } catch (Exception ex) { ActivityLog.LogError(VisualStudioAutomationHelper.RamlVsToolsActivityLogSource, VisualStudioAutomationHelper.GetExceptionInfo(ex)); var errorMessage = ex.Message; if (ex.InnerException != null) { errorMessage += " - " + ex.InnerException.Message; } MessageBox.Show(errorMessage); return(null); } }
private static async Task <WebApiGeneratorModel> GetAdditionalPropertiesGeneratedModel() { var raml = await new RamlParser().LoadAsync("files/additionalprops.raml"); var model = new WebApiGeneratorService(raml, "TargetNamespace").BuildModel(); return(model); }
private static async Task <WebApiGeneratorModel> GetOrdersXmlGeneratedModel() { var raml = await new RamlParser().LoadAsync("files/ordersXml.raml"); var model = new WebApiGeneratorService(raml, "OrdersXml").BuildModel(); return(model); }
private static async Task <WebApiGeneratorModel> GetBoxGeneratedModel() { var raml = await new RamlParser().LoadAsync("box.raml"); var model = new WebApiGeneratorService(raml).BuildModel(); return(model); }
private static async Task <WebApiGeneratorModel> BuildModel(string ramlFile) { //var fi = new FileInfo(ramlFile); var raml = await new AmfParser().Load(ramlFile); var model = new WebApiGeneratorService(raml, "TargetNamespace", "TargetNamespace.Models").BuildModel(); return(model); }
private async Task <WebApiGeneratorModel> GetLargeGeneratedModel() { var raml = await new RamlParser().LoadAsync("files/large.raml"); var model = new WebApiGeneratorService(raml, "TestNs").BuildModel(); return(model); }
private static async Task <WebApiGeneratorModel> BuildModel(string ramlFile) { var fi = new FileInfo(ramlFile); var raml = await new RamlParser().LoadAsync(fi.FullName); var model = new WebApiGeneratorService(raml, "TargetNamespace").BuildModel(); return(model); }
private async Task <WebApiGeneratorModel> GetRegressionGeneratedModel() { var raml = await new RamlParser().LoadAsync("regression.raml"); var model = new WebApiGeneratorService(raml).BuildModel(); return(model); }
private async Task <WebApiGeneratorModel> BuildModel(string ramlFile) { IncrementTestCount(); //var fi = new FileInfo(ramlFile); var raml = await new RamlParser().Load(ramlFile); var model = new WebApiGeneratorService(raml, "TargetNamespace", "TargetNamespace.Models").BuildModel(); return(model); }
private async Task <WebApiGeneratorModel> BuildModel(string ramlFile) { IncrementTestCount(); var path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase.Replace("file:///", string.Empty)); var fullPath = Path.Combine(path + "\\", ramlFile.Replace("/", "//")); var fi = new FileInfo(fullPath); var raml = await new RamlParser().Load(fi.FullName); var model = new WebApiGeneratorService(raml, "TargetNamespace", "TargetNamespace.Models").BuildModel(); return(model); }
public void Generate() { var model = new WebApiGeneratorService(ramlDoc, targetNamespace, targetNamespace + ".Models").BuildModel(); var models = model.Objects; // when is an XML model, skip empty objects if (models.Any(o => !string.IsNullOrWhiteSpace(o.GeneratedCode))) { models = models.Where(o => o.Properties.Any() || !string.IsNullOrWhiteSpace(o.GeneratedCode)); } models = models.Where(o => !o.IsArray || o.Type == null); // skip array of primitives models = models.Where(o => !o.IsScalar); // skip scalars hasModels = models.Any(); GenerateModels(model.Objects); GenerateEnums(model.Enums); GenerateInterfaceControllers(model.Controllers); GenerateBaseControllers(model.Controllers); GenerateImplementationControllers(model.Controllers); }
public void Should_Inherit_Uri_Parameters_When_Nested_Resources_Case2() { var doc = new RamlDocument { Title = "test" }; var uriParameters1 = new Dictionary <string, Parameter> { { "id", new Parameter { DisplayName = "id", Type = "integer" } } }; var uriParameters2 = new Dictionary <string, Parameter> { { "current", new Parameter { DisplayName = "current", Type = "boolean" } } }; var methods = new List <Method> { new Method { Verb = "get" } }; var resources = new Collection <Resource> { new Resource { RelativeUri = "/{id}", Methods = methods, UriParameters = uriParameters1, Resources = new Collection <Resource> { new Resource { RelativeUri = "/something", Methods = methods, Resources = new Collection <Resource> { new Resource { RelativeUri = "/{current}", Methods = methods, UriParameters = uriParameters2, Resources = new Collection <Resource> { new Resource { RelativeUri = "/deep", Methods = methods } } } } } } } }; doc.Resources = resources; var service = new WebApiGeneratorService(doc, "TargetNamespace"); var model = service.BuildModel(); Assert.AreEqual("bool", model.Controllers.First().Methods.First(m => m.Name.Contains("Deep")).UriParameters.First(p => p.Name == "current").Type); Assert.AreEqual("int", model.Controllers.First().Methods.First(m => m.Name.Contains("Deep")).UriParameters.First(p => p.Name == "id").Type); }
public void Scaffold(string ramlSource, RamlChooserActionParams parameters) { var data = parameters.Data; if (data == null || data.RamlDocument == null) { return; } var model = new WebApiGeneratorService(data.RamlDocument, parameters.ControllersNamespace, parameters.ModelsNamespace).BuildModel(); var dte = ServiceProvider.GetService(typeof(SDTE)) as DTE; var proj = VisualStudioAutomationHelper.GetActiveProject(dte); var contractsFolderItem = VisualStudioAutomationHelper.AddFolderIfNotExists(proj, ContractsFolderName); var ramlItem = contractsFolderItem.ProjectItems.Cast <ProjectItem>() .First(i => i.Name.ToLowerInvariant() == parameters.TargetFileName.ToLowerInvariant()); var contractsFolderPath = Path.GetDirectoryName(proj.FullName) + Path.DirectorySeparatorChar + ContractsFolderName + Path.DirectorySeparatorChar; var templates = new[] { ControllerBaseTemplateName, ControllerInterfaceTemplateName, ControllerImplementationTemplateName, ModelTemplateName, EnumTemplateName }; if (!templatesManager.ConfirmWhenIncompatibleServerTemplate(contractsFolderPath, templates)) { return; } var extensionPath = Path.GetDirectoryName(GetType().Assembly.Location) + Path.DirectorySeparatorChar; AddOrUpdateModels(parameters, contractsFolderPath, ramlItem, model, contractsFolderItem, extensionPath); AddOrUpdateEnums(parameters, contractsFolderPath, ramlItem, model, contractsFolderItem, extensionPath); AddOrUpdateControllerBase(parameters, contractsFolderPath, ramlItem, model, contractsFolderItem, extensionPath); AddOrUpdateControllerInterfaces(parameters, contractsFolderPath, ramlItem, model, contractsFolderItem, extensionPath); AddOrUpdateControllerImplementations(parameters, contractsFolderPath, proj, model, contractsFolderItem, extensionPath); AddJsonSchemaParsingErrors(model.Warnings, contractsFolderPath, contractsFolderItem, ramlItem); if (parameters.GenerateUnitTests.HasValue && parameters.GenerateUnitTests.Value) { var testsProj = VisualStudioAutomationHelper.GetProject(dte, parameters.TestsProjectName); parameters.TestsNamespace = VisualStudioAutomationHelper.GetDefaultNamespace(testsProj) + "." + NetNamingMapper.GetObjectName(Path.GetFileNameWithoutExtension(parameters.RamlFilePath)); var unitTestsScaffoldService = UnitTestsScaffoldServiceBase.GetScaffoldService(Microsoft.VisualStudio.Shell.ServiceProvider.GlobalProvider); unitTestsScaffoldService.InstallDependencies(testsProj); unitTestsScaffoldService.ScaffoldToProject(parameters, testsProj); } }