Exemple #1
0
        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"));
        }
Exemple #2
0
        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());
        }