private void ListToInstall() { var appList = DownloadParameters.AppList; var list = new List <string>(); var installQueue = new List <Func <Task> >(); var bits = DetectWindows.Bits(); #region InstallIIS list.Add("IIS - Serviços de Informações da Internet"); installQueue.Add(() => Install.IIS(InstallationPath, Port)); #endregion InstallIIS #region VCRedist if (RequirementsCheck.VcRedistX86()) { list.Add(appList.VcRedistX86.Name); installQueue.Add(() => Download.VcRedistAsync("x86", ProgressChanged)); } if (bits == "x64") { if (RequirementsCheck.VcRedistX64()) { list.Add(appList.VcRedistX64.Name); installQueue.Add(() => Download.VcRedistAsync("x64", ProgressChanged)); } } #endregion #region NetCore if (RequirementsCheck.NetCore()) { list.Add(appList.NetCore.Name); installQueue.Add(() => Download.NetCoreAsync(ProgressChanged)); } #endregion NetCore #region SQLServer if (InstallSQLServer) { list.Add(appList.SQLServer.Name); installQueue.Add(() => Download.SQLServerAsync(ProgressChanged)); } #endregion #region SQLServerStudio if (InstallSQLServerStudio) { list.Add(appList.SQLServerStudio.Name); installQueue.Add(() => Download.SQLServerStudioAsync(ProgressChanged)); } #endregion #region Database if (InstallDatabase) { list.Add(appList.Database.Name); installQueue.Add(() => Download.DatabaseAsync(ProgressChanged)); } #endregion Database #region LinqPad if (InstallLinqPad) { list.Add(appList.LinqPad.Name); installQueue.Add(() => Download.LinqPadAsync(ProgressChanged)); } #endregion LinqPad #region ProlexNet list.Add(appList.ProlexNet.Name); installQueue.Add(() => Download.ProlexNetAsync(ProgressChanged, Port)); #endregion ProlexNet InstallList = list; InstallQueue = installQueue; }