public AzureMethodGroupTemplateModel(ServiceClient serviceClient, string methodGroupName) : base(serviceClient, methodGroupName) { MethodTemplateModels.Clear(); Methods.Where(m => m.Group == MethodGroupName) .ForEach(m => MethodTemplateModels.Add(new AzureMethodTemplateModel(m, serviceClient))); }
public string GenerateAzureServiceClientImports() { TSBuilder builder = new TSBuilder(); builder.ImportAllAs("msRest", "ms-rest-js"); bool usesAzureOptionsType = OptionalParameterTypeForClientConstructor == "AzureServiceClientOptions"; if (usesAzureOptionsType || MethodTemplateModels.Any((MethodTS method) => method.IsLongRunningOperation)) { builder.ImportAllAs("msRestAzure", "ms-rest-azure-js"); } if (CodeGeneratorTS.ShouldWriteModelsFiles(this)) { builder.ImportAllAs("Models", "./models"); } if (CodeGeneratorTS.ShouldWriteMappersIndexFile(this)) { builder.ImportAllAs("Mappers", "./models/mappers"); } if (HasMappableParameters) { builder.ImportAllAs("Parameters", "./models/parameters"); } if (MethodGroupModels.Any()) { builder.ImportAllAs("operations", "./operations"); } builder.Import(new string[] { ContextName }, $"./{ContextName.ToCamelCase()}"); return(builder.ToString()); }
public string GenerateMethodGroupImports() { TSBuilder builder = new TSBuilder(); builder.ImportAllAs("coreHttp", "@azure/core-http"); if (MethodTemplateModels.Any((MethodTS method) => method.IsLongRunningOperation)) { builder.ImportAllAs("coreArm", "@azure/core-arm"); } CodeModelTS codeModel = CodeModelTS; if (CodeGeneratorTS.ShouldWriteModelsFiles(codeModel)) { if (ContainsCompositeOrEnumTypeInParametersOrReturnType() || MethodTemplateModels.Any(m => m.HasCustomHttpResponseType)) { builder.ImportAllAs("Models", "../models"); } if (codeModel.HasMappers()) { builder.ImportAllAs("Mappers", $"../models/{MappersModuleName}"); } } if (HasMappableParameters) { builder.ImportAllAs("Parameters", "../models/parameters"); } builder.Import(new string[] { codeModel.ContextName }, $"../{codeModel.ContextName.ToCamelCase()}"); return(builder.ToString()); }
public AzureServiceClientTemplateModel(ServiceClient serviceClient) : base(serviceClient) { MethodTemplateModels.Clear(); Methods.Where(m => m.Group == null) .ForEach(m => MethodTemplateModels.Add(new AzureMethodTemplateModel(m, serviceClient))); // Removing all models that contain the extension "x-ms-external", as they will be // generated in python client runtime for azure - "ms-rest-azure". ModelTemplateModels.Clear(); ModelTypes.ForEach(m => ModelTemplateModels.Add(new AzureModelTemplateModel(m, serviceClient))); ModelTemplateModels.RemoveAll(m => m.Extensions.ContainsKey(AzureExtensions.PageableExtension)); ModelTemplateModels.RemoveAll(m => m.Extensions.ContainsKey(AzureExtensions.ExternalExtension)); HasAnyModel = false; if (serviceClient.ModelTypes.Any()) { foreach (var model in serviceClient.ModelTypes) { if (!model.Extensions.ContainsKey(AzureExtensions.ExternalExtension) || !(bool)model.Extensions[AzureExtensions.ExternalExtension]) { HasAnyModel = true; break; } } } }
public bool ContainsCompositeOrEnumTypeInParametersOrReturnType() { bool result = false; foreach (var method in MethodTemplateModels) { var parametersToBeScanned = method.LocalParameters.Where(l => l.IsRequired); if (!method.OptionsParameterModelType.Name.EqualsIgnoreCase("RequestOptionsBase")) { result = true; break; } result = parametersToBeScanned.Any(p => p.ModelType.IsCompositeOrEnumType()); if (result) { break; } } if (!result) { result = MethodTemplateModels.Any(m => m.ReturnType.Body.IsCompositeOrEnumType()); } return(result); }
public string GenerateServiceClientImports() { TSBuilder builder = new TSBuilder(); if (MethodTemplateModels.Any() || OptionalParameterTypeForClientConstructor == ServiceClientOptions) { builder.ImportAllAs("msRest", "ms-rest-js"); } if (CodeGeneratorTS.ShouldWriteModelsFiles(this)) { builder.ImportAllAs("Models", "./models"); } if (HasMappers()) { builder.ImportAllAs("Mappers", "./models/mappers"); } if (HasMappableParameters) { builder.ImportAllAs("Parameters", "./models/parameters"); } if (CodeGeneratorTS.ShouldWriteMethodGroupFiles(this)) { builder.ImportAllAs("operations", "./operations"); } builder.Import(new string[] { ContextName }, $"./{ContextName.ToCamelCase()}"); return(builder.ToString()); }
public AzureMethodGroupTemplateModel(ServiceClient serviceClient, string methodGroupName) : base(serviceClient, methodGroupName) { // Clear base initialized MethodTemplateModels and re-populate with // AzureMethodTemplateModel MethodTemplateModels.Clear(); var currentMethods = Methods.Where(m => m.Group == MethodGroupName && m.Extensions.ContainsKey(AzureExtensions.PageableExtension)); var nextListMethods = new List <Method>(); foreach (var method in currentMethods) { var pageableExtension = method.Extensions[AzureExtensions.PageableExtension] as Newtonsoft.Json.Linq.JContainer; var operationName = (string)pageableExtension["operationName"]; if (operationName != null) { var nextLinkMethod = Methods.FirstOrDefault(m => operationName.Equals(m.SerializedName, StringComparison.OrdinalIgnoreCase)); if (nextLinkMethod != null) { method.Extensions["nextLinkURL"] = nextLinkMethod.Url; method.Extensions["nextLinkParameters"] = nextLinkMethod.LogicalParameters; nextListMethods.Add(nextLinkMethod); } } } Methods.RemoveAll(m => nextListMethods.Contains(m)); Methods.Where(m => m.Group == methodGroupName) .ForEach(m => MethodTemplateModels.Add(new AzureMethodTemplateModel(m, serviceClient))); }
/// <summary> /// Initializes a new instance of the AzureServiceClientTemplateModel class. /// </summary> /// <param name="serviceClient">The service client instance.</param> public AzureServiceClientTemplateModel(ServiceClient serviceClient) : base(serviceClient) { MethodTemplateModels.Clear(); Methods.Where(m => m.Group == null) .ForEach(m => MethodTemplateModels.Add(new AzureMethodTemplateModel(m, serviceClient))); }
public AzureServiceClientTemplateModel(ServiceClient serviceClient) : base(serviceClient) { MethodTemplateModels.Clear(); Methods.Where(m => m.Group == null) .ForEach(m => MethodTemplateModels.Add(new AzureMethodTemplateModel(m, serviceClient))); ModelTemplateModels.RemoveAll(m => m.Extensions.ContainsKey("x-ms-external")); }
public AzureServiceClientTemplateModel(ServiceClient serviceClient) : base(serviceClient) { // TODO: Initialized in the base constructor. Why Clear it? MethodTemplateModels.Clear(); Methods.Where(m => m.Group == null) .ForEach(m => MethodTemplateModels.Add(new AzureMethodTemplateModel(m, serviceClient))); }
public AzureServiceClientTemplateModel(ServiceClient serviceClient, bool internalConstructors) : base(serviceClient, internalConstructors) { // TODO: Initialized in the base constructor. Why Clear it? MethodTemplateModels.Clear(); Methods.Where(m => m.Group == null) .ForEach(m => MethodTemplateModels.Add(new AzureMethodTemplateModel(m, serviceClient, SyncMethodsGenerationMode.None))); }
/// <summary> /// Initializes a new instance /// </summary> /// <param name="serviceClient">The service client instance.</param> /// <param name="methodGroupName">The name of the method group.</param> public AzureMethodGroupTemplateModel(ServiceClient serviceClient, string methodGroupName) : base(serviceClient, methodGroupName) { // Clear base initialized MethodTemplateModels and re-populate with // AzureMethodTemplateModel MethodTemplateModels.Clear(); Methods.Where(m => m.Group == methodGroupName) .ForEach(m => MethodTemplateModels.Add(new AzureMethodTemplateModel(m, serviceClient))); }
public AzureServiceClientTemplateModel(ServiceClient serviceClient) : base(serviceClient) { MethodTemplateModels.Clear(); Methods.Where(m => m.Group == null) .ForEach(m => MethodTemplateModels.Add(new AzureMethodTemplateModel(m, serviceClient))); ModelTemplateModels.RemoveAll(m => m.Extensions.ContainsKey(AzureCodeGenerator.ExternalExtension)); ModelTemplateModels.RemoveAll(m => m.Extensions.ContainsKey(AzureCodeGenerator.AzureResourceExtension)); }
public AzureMethodGroupTemplateModel(ServiceClient serviceClient, string methodGroupName) : base(serviceClient, methodGroupName) { MethodGroupType = MethodGroupName + "Operations"; // Clear base initialized MethodTemplateModels and re-populate with // AzureMethodTemplateModel MethodTemplateModels.Clear(); Methods.Where(m => m.Group == methodGroupName) .ForEach(m => MethodTemplateModels.Add(new AzureMethodTemplateModel(m, serviceClient, SyncMethodsGenerationMode.None))); }
public AzureServiceClientTemplateModel(ServiceClient serviceClient) : base(serviceClient) { Properties.Remove(Properties.Find(p => p.Type.Name == "ServiceClientCredentials")); MethodTemplateModels.Clear(); Methods.Where(m => m.Group == null) .ForEach(m => MethodTemplateModels.Add(new AzureMethodTemplateModel(m, serviceClient))); ModelTemplateModels.Clear(); ModelTypes.ForEach(m => ModelTemplateModels.Add(new AzureModelTemplateModel(m, serviceClient))); }
public AzureExtensionsTemplateModel(ServiceClient serviceClient, string operationName, SyncMethodsGenerationMode syncWrappers) : base(serviceClient, operationName, syncWrappers) { MethodTemplateModels.Clear(); Methods.Where(m => m.Group == operationName) .ForEach(m => MethodTemplateModels.Add(new AzureMethodTemplateModel(m, serviceClient, syncWrappers))); if (ExtensionName != Name) { ExtensionName = ExtensionName + "Operations"; } }
public AzureServiceClientTemplateModel(ServiceClient serviceClient) : base(serviceClient) { MethodTemplateModels.Clear(); Methods.Where(m => m.Group == null) .ForEach(m => MethodTemplateModels.Add(new AzureMethodTemplateModel(m, serviceClient))); // Removing all models that contain the extension "x-ms-external", as they will be // generated in nodejs client runtime for azure - "ms-rest-azure". ModelTemplateModels.RemoveAll(m => m.Extensions.ContainsKey(AzureExtensions.PageableExtension)); ModelTemplateModels.RemoveAll(m => m.Extensions.ContainsKey(AzureExtensions.ExternalExtension)); PageTemplateModels = new List <PageTemplateModel>(); }
public override string ConstructImportTS() => MethodTemplateModels.Any() ? "import { ServiceClient, ServiceClientOptions, ServiceCallback, HttpOperationResponse, ServiceClientCredentials } from 'ms-rest';" : "import { ServiceClientCredentials } from 'ms-rest';";