private async Task <EnvironmentDeployment> InteractivePrompt(Channel channel, Channel defaultChannel, OctoPlusCore.Models.Environment environment, IList <Project> projects) { InteractiveRunner runner = PopulateRunner(String.Format(languageProvider.GetString(LanguageSection.UiStrings, "DeployingTo"), channel.Name, environment.Name), languageProvider.GetString(LanguageSection.UiStrings, "PackageNotSelectable"), projects); var indexes = runner.GetSelectedIndexes(); if (!indexes.Any()) { System.Console.WriteLine(languageProvider.GetString(LanguageSection.UiStrings, "NothingSelected")); return(null); } var deployment = await PrepareEnvironmentDeployment(channel, defaultChannel, environment, projects, indexes); return(deployment); }
private EnvironmentDeployment InteractivePrompt(OctoPlusCore.Models.Environment environment, OctoPlusCore.Models.Environment targetEnvironment, IList <Project> projects, IList <Project> targetProjects) { InteractiveRunner runner = PopulateRunner(String.Format(languageProvider.GetString(LanguageSection.UiStrings, "PromotingTo"), environment.Name, targetEnvironment.Name), projects, targetProjects); var indexes = runner.GetSelectedIndexes(); if (!indexes.Any()) { System.Console.WriteLine(languageProvider.GetString(LanguageSection.UiStrings, "NothingSelected")); return(null); } var deployment = new EnvironmentDeployment { ChannelName = string.Empty, DeployAsync = true, EnvironmentId = targetEnvironment.Id, EnvironmentName = targetEnvironment.Name }; foreach (var index in indexes) { var current = projects[index]; var currentTarget = targetProjects[index]; if (current.CurrentRelease != null) { deployment.ProjectDeployments.Add(new ProjectDeployment { ProjectId = currentTarget.ProjectId, ProjectName = currentTarget.ProjectName, LifeCycleId = currentTarget.LifeCycleId, ReleaseId = current.CurrentRelease.Id }); } } return(deployment); }