public Controller(RepositoryClient client, Mailer mailer,AppConfig appConfig) { Client= client; Mailer= mailer; AppConfig = appConfig; //LoadRules(); }
void ConfigureApp(Container container) { var appSettings = new ConfigurationResourceManager(); double se= appSettings.Get("DefaultSessionExpiry", 480); AuthProvider.DefaultSessionExpiry=TimeSpan.FromMinutes(se); string cacheHost= appSettings.Get("REDISTOGO_URL","localhost:6379").Replace("redis://redistogo:","").Replace("/",""); var redisClientManager = new BasicRedisClientManager(new string[]{cacheHost}); OrmLiteConfig.DialectProvider= MySqlDialectProvider.Instance; IDbConnectionFactory dbFactory = new OrmLiteConnectionFactory(ConfigUtils.GetConnectionString("ApplicationDb")); string smtpServer= appSettings.Get("MAILGUN_SMTP_SERVER", "localhost"); string smtpLogin= appSettings.Get("MAILGUN_SMTP_LOGIN", "username"); string smtpPassword= appSettings.Get("MAILGUN_SMTP_PASSWORD", "PASSWORD"); int smtpPort= appSettings.Get("MAILGUN_SMTP_PORT", 587); Mailer mailer = new Mailer(smtpServer, smtpPort, smtpLogin, smtpPassword); var appConfig= new AppConfig(appSettings); RepositoryClient rc = new RepositoryClient(dbFactory, redisClientManager); Controller controller = new Controller(rc,mailer,appConfig); container.Register<Controller>( controller ); AuthRepoProxy arp = new AuthRepoProxy(dbFactory, redisClientManager); container.Register<AuthRepoProxy>( arp ); container.Register<IRedisClientsManager>(c => redisClientManager); //container.Register<ICacheClient>(c => redisClientManager); Plugins.Add(new AuthFeature( () => new AuthUserSession(), // or Use your own typed Custom AuthUserSession type new IAuthProvider[] { new AuthenticationProvider(){SessionExpiry=TimeSpan.FromMinutes(se)} }) { IncludeAssignRoleServices=false }); OrmLiteAuthRepository authRepo = new OrmLiteAuthRepository(dbFactory); container.Register<IUserAuthRepository>(c => authRepo); if(appSettings.Get("EnableRegistrationFeature", false)) Plugins.Add( new RegistrationFeature()); }