Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
            }
        }
Example #3
0
        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();
        }
Example #4
0
        /// <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);
            }
        }
Example #5
0
        /// <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));
        }
Example #6
0
        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);
            }
        }
Example #7
0
        /// <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);
        }