Esempio n. 1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors();

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);


            services.AddSingleton <IConfigurationSection>(Configuration.GetSection("Captcha"));

            var sp = services.BuildServiceProvider();

            var genTypeName = Configuration.GetValue <string>("Captcha:GeneratorType");

            if (string.IsNullOrEmpty(genTypeName))
            {
                services.AddSingleton <ICaptchaGenerator, EnglishAlphaNumericProvider>();
            }
            else
            {
                var type = Type.GetType(genTypeName, true);
                ICaptchaGenerator generator = (ICaptchaGenerator)ActivatorUtilities.CreateInstance(sp, type);
                services.AddSingleton <ICaptchaGenerator>(generator);
            }

            var repoTypeName = Configuration.GetValue <string>("Captcha:RepositoryType");

            if (string.IsNullOrEmpty(repoTypeName))
            {
                services.AddSingleton <ICaptchaRepository, CaptchaInMemoryRepository>();
            }
            else
            {
                var type = Type.GetType(repoTypeName, true);
                ICaptchaRepository repository = (ICaptchaRepository)ActivatorUtilities.CreateInstance(sp, type);
                services.AddSingleton <ICaptchaRepository>(repository);
            }
        }
Esempio n. 2
0
 public CaptchaController(ICaptchaGenerator generator, ICaptchaRepository repository)
 {
     _generator  = generator;
     _repository = repository;
 }