public void GetServiceEndpoints()

in src/VstsDemoBuilder/Services/ExtractorService.cs [1353:1525]


        public void GetServiceEndpoints(ProjectConfigurations appConfig)
        {
            try
            {
                ServiceEndPoint serviceEndPoint = new ServiceEndPoint(appConfig.EndpointConfig);
                Parameters.ServiceEndPoint getServiceEndPoint = serviceEndPoint.GetServiceEndPoints();
                if (getServiceEndPoint.count > 0)
                {
                    foreach (Parameters.Value endpoint in getServiceEndPoint.value)
                    {
                        switch (endpoint.authorization.scheme)
                        {
                            case "OAuth":
                            case "InstallationToken":
                                switch (endpoint.type)
                                {
                                    case "github":
                                    case "GitHub":
                                        if (endpoint.authorization.parameters == null)
                                        {
                                            endpoint.authorization.parameters = new Parameters.Parameters
                                            {
                                                AccessToken = "AccessToken"
                                            };
                                        }
                                        else
                                        {
                                            endpoint.authorization.parameters.AccessToken = endpoint.authorization.parameters.AccessToken ?? "AccessToken";
                                        }
                                        break;
                                }
                                break;
                            case "UsernamePassword":
                                endpoint.authorization.parameters.username = endpoint.authorization.parameters.username ?? "username";
                                endpoint.authorization.parameters.password = endpoint.authorization.parameters.password ?? "password";
                                break;
                            case "ManagedServiceIdentity":
                                if (endpoint.authorization.parameters == null)
                                {
                                    endpoint.authorization.parameters = new Parameters.Parameters
                                    {
                                        tenantId = Guid.NewGuid().ToString()
                                    };
                                }
                                else
                                {
                                    endpoint.authorization.parameters.tenantId = endpoint.authorization.parameters.tenantId ?? Guid.NewGuid().ToString();
                                }
                                break;
                            case "ServicePrincipal":
                                switch (endpoint.type)
                                {
                                    case "devCenter":
                                        endpoint.authorization.parameters.servicePrincipalKey = endpoint.authorization.parameters.servicePrincipalKey ?? "P2ssw0rd@123";
                                        break;
                                    case "azurerm":
                                        endpoint.authorization.parameters.url = null;
                                        endpoint.authorization.parameters.servicePrincipalId = endpoint.authorization.parameters.servicePrincipalId ?? Guid.NewGuid().ToString();
                                        endpoint.authorization.parameters.authenticationType = endpoint.authorization.parameters.authenticationType ?? "spnKey";
                                        endpoint.authorization.parameters.tenantId = endpoint.authorization.parameters.tenantId ?? Guid.NewGuid().ToString();
                                        endpoint.authorization.parameters.servicePrincipalKey = endpoint.authorization.parameters.servicePrincipalKey ?? "spnKey";
                                        switch (endpoint.data.scopeLevel)
                                        {
                                            case "ManagementGroup":
                                                endpoint.data.managementGroupId = endpoint.data.managementGroupId ?? "managedgroup";
                                                endpoint.data.managementGroupName = endpoint.data.managementGroupName ?? "groupname";
                                                break;
                                        }
                                        break;
                                }
                                break;
                            case "Certificate":
                                switch (endpoint.type)
                                {
                                    case "dockerhost":
                                        if (endpoint.authorization.parameters == null)
                                        {
                                            endpoint.authorization.parameters = new Parameters.Parameters();
                                            endpoint.authorization.parameters.cacert = endpoint.authorization.parameters.cacert ?? "cacert";
                                            endpoint.authorization.parameters.cert = endpoint.authorization.parameters.cert ?? "cert";
                                            endpoint.authorization.parameters.key = endpoint.authorization.parameters.key ?? "key";
                                        }
                                        else
                                        {
                                            endpoint.authorization.parameters.cacert = endpoint.authorization.parameters.cacert ?? "cacert";
                                            endpoint.authorization.parameters.cert = endpoint.authorization.parameters.cert ?? "cert";
                                            endpoint.authorization.parameters.key = endpoint.authorization.parameters.key ?? "key";
                                        }
                                        break;

                                    case "azure":
                                        if (endpoint.authorization.parameters == null)
                                        {
                                            endpoint.authorization.parameters = new Parameters.Parameters
                                            {
                                                certificate = "certificate"
                                            };
                                        }
                                        else
                                        {
                                            endpoint.authorization.parameters.certificate = endpoint.authorization.parameters.certificate ?? "certificate";
                                        }
                                        break;
                                }
                                break;
                            case "Token":
                                if (endpoint.authorization.parameters == null)
                                {
                                    endpoint.authorization.parameters = new Parameters.Parameters
                                    {
                                        apitoken = "apitoken"
                                    };
                                }
                                else
                                {
                                    endpoint.authorization.parameters.apitoken = endpoint.authorization.parameters.apitoken ?? "apitoken";
                                }
                                break;
                            case "None":
                                switch (endpoint.type)
                                {
                                    case "AzureServiceBus":
                                        if (endpoint.authorization.parameters == null)
                                        {
                                            endpoint.authorization.parameters = new Parameters.Parameters
                                            {
                                                serviceBusConnectionString = "connectionstring"
                                            };
                                        }
                                        else
                                        {
                                            endpoint.authorization.parameters.serviceBusConnectionString = endpoint.authorization.parameters.serviceBusConnectionString ?? "connectionstring";
                                        }
                                        break;
                                    case "externalnugetfeed":
                                        if (endpoint.authorization.parameters == null)
                                        {
                                            endpoint.authorization.parameters = new Parameters.Parameters
                                            {
                                                nugetkey = "nugetkey"
                                            };
                                        }
                                        else
                                        {
                                            endpoint.authorization.parameters.nugetkey = endpoint.authorization.parameters.nugetkey ?? "nugetkey";
                                        }
                                        break;
                                }
                                break;

                        }
                        string endpointString = JsonConvert.SerializeObject(endpoint);
                        if (!Directory.Exists(extractedTemplatePath + appConfig.EndpointConfig.Project + "\\ServiceEndpoints"))
                        {
                            Directory.CreateDirectory(extractedTemplatePath + appConfig.EndpointConfig.Project + "\\ServiceEndpoints");
                            File.WriteAllText(extractedTemplatePath + appConfig.EndpointConfig.Project + "\\ServiceEndpoints\\", JsonConvert.SerializeObject(endpoint, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }));
                        }
                        else
                        {
                            File.WriteAllText(extractedTemplatePath + appConfig.EndpointConfig.Project + "\\ServiceEndpoints\\" + endpoint.name + ".json", JsonConvert.SerializeObject(endpoint, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }));
                        }
                    }
                }
                else if (!string.IsNullOrEmpty(serviceEndPoint.LastFailureMessage))
                {
                    AddMessage(appConfig.EndpointConfig.Id.ErrorId(), "Error occured while fetchin service endpoints");
                }
            }
            catch (Exception ex)
            {
                logger.Info(DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss") + "\t" + ex.Message + "\n" + ex.StackTrace + "\n");
            }
        }