public async Task <IActionResult> General(GeneralForm generalForm) { if (ModelState.IsValid) { var tasks = new Task[9]; var manifest = new ManifestBuilder { ShortName = generalForm.SiteName, Name = generalForm.SiteName, Icons = new[] { new ManifestBuilder.Icon { Src = "assets/icon.png", Type = "image/png", Sizes = "512x512" } }, ThemeColor = "#FFF", BackgroundColor = "#FFF", GcmSenderId = "103953800507" }; tasks[0] = Task.Run(async() => await _settingsKeeper.AddSettings("SiteName", generalForm.SiteName)); tasks[1] = Task.Run(async() => await _settingsKeeper.AddSettings("SiteDescription", generalForm.SiteDescription)); tasks[2] = Task.Run(async() => await _settingsKeeper.AddSettings("SiteUrl", generalForm.SiteUrl)); tasks[3] = Task.Run(async() => await _settingsKeeper.AddSettings("EnableRegistration", generalForm.EnableRegistration.ToString())); tasks[4] = Task.Run(async() => await _settingsKeeper.AddSettings("NumberOfUpdatesToShow", generalForm.NumberOfUpdatesToShow.ToString())); tasks[5] = Task.Run(async() => await _settingsKeeper.AddSettings("SiteFooterCode", generalForm.SiteFooter ?? string.Empty)); tasks[6] = Task.Run(async() => await _settingsKeeper.AddSettings("SiteSideBar", generalForm.SiteSideBar ?? string.Empty)); tasks[7] = Task.Run(async() => await _settingsKeeper.AddSettings("SiteAboutPage", generalForm.SiteAboutPage ?? string.Empty)); tasks[8] = Task.Run(async() => await manifest.BuildManifest(_webHostEnvironment)); TempData["Error"] = false; await Task.WhenAll(tasks); } else { TempData["Error"] = true; } return(RedirectToAction("General")); }
public async Task <IActionResult> Install(SignUpForm signUpForm) { if (Utils.IsInstalled()) { return(RedirectToAction("Index", "Home")); } if (ModelState.IsValid) { var tasks = new List <Task>(); await _naniWebContext.Database.MigrateAsync(); var npgsqlConnection = (NpgsqlConnection)_naniWebContext.Database.GetDbConnection(); npgsqlConnection.Open(); npgsqlConnection.ReloadTypes(); _settingsKeeper.SynchronizeSettings(); var user = new IdentityUser <int> { UserName = signUpForm.Username, Email = signUpForm.Email, EmailConfirmed = true }; tasks.Add(Task.Run(async() => { await _userManager.CreateAsync(user, signUpForm.Password); await _userManager.AddToRoleAsync(user, "Administrator"); })); tasks.Add(Task.Run(async() => await System.IO.File.WriteAllTextAsync($"{Utils.CurrentDirectory.FullName}{Path.DirectorySeparatorChar}installed.txt", Utils.InstallationId))); tasks.Add(Task.Run(async() => { var manifest = new ManifestBuilder { ShortName = _settingsKeeper.GetSetting("SiteName").Value, Name = _settingsKeeper.GetSetting("SiteName").Value, Icons = new[] { new ManifestBuilder.Icon { Src = "assets/icon.png", Type = "image/png", Sizes = "512x512" } }, ThemeColor = "#FFF", BackgroundColor = "#FFF", GcmSenderId = "103953800507" }; await manifest.BuildManifest(_webHostEnvironment); })); await Task.WhenAll(tasks); await _signInManager.PasswordSignInAsync(user, signUpForm.Password, false, false); return(RedirectToAction("General", "SettingsManager")); } TempData["Error"] = true; return(View()); }