public void ConfigureContainer(Container container) { var key = Configuration["TokenKey"]; var sqlConn = Configuration["connectionString"]; var publicKey = new X509Certificate2(Convert.FromBase64String(key)).PublicKey.Key as RSACng; var consulConfig = new ConsulConnectionConfiguration { Environment = Configuration["Consul:Environment"], Host = Configuration["Consul:Host"], Token = Configuration["Consul:Token"] }; //Container Configuration container.Configure(config => { //Consul config config.For <IConfigurationManager>().Use <ConfigurationManager>() .Ctor <ConsulConnectionConfiguration>("configuration").Is(consulConfig); //Ruffer.Security config.For <AsymmetricAlgorithm>().Use(publicKey); config.For <IEncrytionHelper>().Use <EncrytionHelper>().Ctor <byte[]>("encryptionKey") .Is(Convert.FromBase64String(Configuration["EncryptionKey"])); config.For <ITokenHelper>().Use <TokenHelper>(); config.For <IClaimsHelper>().Use <ClaimsHelper>(); // Config for all classes and interfaces used in Gradebook config.For <IBus>().Use(_bus).Singleton(); config.For <IGrade>().Use <Grade>(); config.For <IStudent>().Use <Student>(); config.For <ILesson>().Use <Lesson>(); config.For <IClassroom>().Use <Classroom>(); config.For <DataAccessRepository <Lesson, ILesson> >().Use <LessonRepository>(); config.For <DataAccessRepository <Student, IStudent> >().Use <StudentRepository>(); config.For <DataAccessRepository <Classroom, IClassroom> >(); config.For <StudentController>().Use <StudentController>(); config.For <ISqlRepository <IStudent> >().Use <StudentSqlRepository>(); //config.For<SqlDataAccessRepository>().Use<StudentSqlRepository>(); config.For <IHttpContextAccessor>().Use <HttpContextAccessor>().Singleton(); config.For <IQueryCountWrapper>().Use <QueryCountWrapper>(); }); }
public static void ConfigureContainer(Container container) { var key = ConfigurationManager.AppSettings["TokenKey"]; var encryptionKey = ConfigurationManager.AppSettings["EncryptionKey"]; var publicKey = new X509Certificate2(Convert.FromBase64String(key)).PublicKey.Key as RSACryptoServiceProvider; var consulConfig = new ConsulConnectionConfiguration { Environment = ConfigurationManager.AppSettings["ConsulEnvironment"], Host = ConfigurationManager.AppSettings["ConsulHost"], Token = ConfigurationManager.AppSettings["ConsulToken"] }; container.Configure(config => { //Set container to work with contract classes config.For <IGrade>().Use <Grade>(); config.For <IStudent>().Use <Student>(); config.For <ILesson>().Use <Lesson>(); config.For <IClassroom>().Use <Classroom>(); config.For <IRepository <Student, IStudent> >().Use <StudentRepository>(); config.For <ISqlRepository <IStudent> >().Use <StudentSqlRepository>(); config.For <SqlGetAllStudentsHandler>().Use <SqlGetAllStudentsHandler>(); //consul config.For <IConfigurationManager>().Use <Ruffer.Consul.ConfigurationManager>() .Ctor <ConsulConnectionConfiguration>("configuration").Is(consulConfig); // security config.For <AsymmetricAlgorithm>().Use(publicKey); config.For <TokenDecryptFilter>() .Use <TokenDecryptFilter>() .Ctor <RSA>("publicKey").Is(publicKey) .Ctor <string>("encryptionKey").Is(encryptionKey); config.For <IClaimsHelper>().Use <ClaimsHelper>(); }); }