/// <summary> /// Configures the database /// </summary> /// <returns>Task</returns> private static async Task ConfigureDb() { do { string connectionString = MessageService.GetMongoDbConnectionString(); AppSettingUpdater.AddOrUpdateAppSetting((config) => config.MongoDb.ConnectionString = connectionString); string databaseName = MessageService.GetMongoDbDatabasename(); AppSettingUpdater.AddOrUpdateAppSetting((config) => config.MongoDb.DbName = databaseName); MessageService.PrintVerifyingDatabase(); try { ServiceProvider serviceProvider = ServiceProviderBuilder.BuildServiceProvider(); IDbSetup dbSetup = serviceProvider.GetService <IDbSetup>(); await dbSetup.SetupDatabaseAsync(); MessageService.PrintSuccessVerifyingDatabase(); break; } catch (Exception ex) { MessageService.PrintErrorVerifyingDatabase(ex); } }while(true); }
/// <summary> /// Configures the project /// </summary> /// <returns>Task</returns> private static async Task ConfigureProject() { ServiceProvider serviceProvider = ServiceProviderBuilder.BuildServiceProvider(); IProjectDbAccess projectDbAccess = serviceProvider.GetService <IProjectDbAccess>(); GoNorthProject defaultProject = await projectDbAccess.GetDefaultProject(); if (defaultProject != null) { MessageService.PrintDefaultProjectExistMessage(); return; } try { string displayName = MessageService.GetDefaultProjectName(); GoNorthProject projectToCreate = new GoNorthProject { Name = displayName, IsDefault = true }; await projectDbAccess.CreateProject(projectToCreate); MessageService.PrintSuccessCreatingDefaultProject(); } catch (Exception ex) { MessageService.PrintErrorCreatingDefaultProject(ex); } }
static async Task Main(string[] args) { var sp = ServiceProviderBuilder.BuildServiceProvider(); var viewEngine = sp.GetRequiredService <IRazorViewEngine>(); try { var razorRunner = sp.GetRequiredService <RazorRunner>(); while (true) { var rendered = await razorRunner.Render("custom:\\testapp\\test.cshtml"); Console.WriteLine(rendered); rendered = await razorRunner.Render("custom:\\testapp\\model.cshtml", new TestModel { Values = new[] { "test", "model", "array", "stuff" } }); Console.WriteLine(rendered); rendered = await razorRunner.Render("custom:\\testapp\\injected.cshtml", new TestModel { Values = new[] { "test-injected", "model-injected", "array-injected", "stuff-injected" } }); Console.WriteLine(rendered); Console.ReadLine(); } } catch (Exception exception) { Console.WriteLine("ERROR: " + exception); } Console.ReadLine(); }
/// <summary> /// Configures the admin account /// </summary> /// <returns>Task</returns> private static async Task ConfigureAdminAccount() { ServiceProvider serviceProvider = ServiceProviderBuilder.BuildServiceProvider(); IUserDbAccess userDbAccess = serviceProvider.GetService <IUserDbAccess>(); if (await userDbAccess.DoesAdminUserExist()) { MessageService.PrintAdminAccountExistMessage(); return; } string email; do { try { string displayName = MessageService.GetAdminAccountDisplayName(); email = MessageService.GetAdminAccountEMail(); string password = MessageService.GetAdminAccountPassword(); IUserCreator userCreator = serviceProvider.GetService <IUserCreator>(); IdentityResult result = await userCreator.CreateUser(new MockUrlHelper(), "https", displayName, email, password, RoleNames.Administrator); if (!result.Succeeded) { throw new Exception(string.Join(',', result.Errors.Select(e => e.Description))); } MessageService.PrintSuccessCreatingAdminAccount(); break; } catch (Exception ex) { MessageService.PrintErrorCreatingAdminAccount(ex); } }while(true); try { UserManager <GoNorthUser> userManager = serviceProvider.GetService <UserManager <GoNorthUser> >(); GoNorthUser adminUser = await userManager.FindByEmailAsync(email); List <string> rolesToAdd = RoleNames.GetAllRoleNames().Where(r => r != RoleNames.Administrator).ToList(); IdentityResult result = await userManager.AddToRolesAsync(adminUser, rolesToAdd); if (!result.Succeeded) { throw new Exception(string.Join(',', result.Errors.Select(e => e.Description))); } } catch (Exception ex) { MessageService.PrintErrorAssignAllRolesToUser(ex); } }
/// <summary> /// Reads the SMTP password /// </summary> /// <returns>SMTP Username</returns> public static string GetSmtpPassword() { Console.WriteLine("======"); Console.WriteLine("Please specify the password that is used to connect to the SMTP-Server (will be encrypted)."); string password = KeyboardHelper.ReadConfigValue("SMTP-Password: ", string.Empty); ServiceProvider serviceProvider = ServiceProviderBuilder.BuildServiceProvider(); IEncryptionService encryptionService = serviceProvider.GetService <IEncryptionService>(); return(encryptionService.Encrypt(password)); }
private static async Task mainLoop(string[] args) { IServiceProvider serviceProvider = await ServiceProviderBuilder.BuildServiceProvider(); using (IServiceScope scope = serviceProvider.CreateScope()) { IDiscordAuthorizer discordAuthorizer = scope.ServiceProvider.GetService <IDiscordAuthorizer>(); IDiscordStarter discordStarter = scope.ServiceProvider.GetService <IDiscordStarter>(); setupLogging(scope); await discordAuthorizer.AuthorizeAsync(); await discordStarter.StartAsync(scope.ServiceProvider); await Task.Delay(-1); } }
/// <summary> /// Configures the email settings /// </summary> /// <returns>Task</returns> private static async Task ConfigureEMail() { do { string smtpServer = MessageService.GetSmtpServer(); if (string.IsNullOrEmpty(smtpServer)) { MessageService.PrintEMailConfigSkip(); break; } try { AppSettingUpdater.AddOrUpdateAppSetting((config) => config.Email.SmtpServer = smtpServer); int port = MessageService.GetSmtpPort(); AppSettingUpdater.AddOrUpdateAppSetting((config) => config.Email.SmtpPort = port); bool useSsl = MessageService.GetSmtpUseSsl(); AppSettingUpdater.AddOrUpdateAppSetting((config) => config.Email.SmtpUseSSL = useSsl); string smtpUsername = MessageService.GetSmtpUsername(); AppSettingUpdater.AddOrUpdateAppSetting((config) => config.Email.SmtpUsername = smtpUsername); string smtpPasword = MessageService.GetSmtpPassword(); AppSettingUpdater.AddOrUpdateAppSetting((config) => config.Email.SmtpPassword = smtpPasword); string smtpTestReceiver = MessageService.GetSmtpTestReceiver(); MessageService.PrintVerifyingStmp(); ServiceProvider serviceProvider = ServiceProviderBuilder.BuildServiceProvider(); IEmailSender emaiLSender = serviceProvider.GetService <IEmailSender>(); await emaiLSender.SendEmailAsync(smtpTestReceiver, "GoNorth - Mail Test", "Mail test successful."); MessageService.PrintSuccessVerifyingSmtpServer(); break; } catch (Exception ex) { MessageService.PrintErrorVerifyingSmtpServer(ex); } }while(true); }