public override void ConfigureServices(IServiceCollection services)
        {
            //DbContext
            services.AddDbContext <AppDbContext>(options => options.UseInMemoryDatabase(databaseName: Configuration.GetConnectionString("EFInMemDbName")));
            //Repo
            services.AddTransient <IApplicantRepository, ApplicantRepository>();
            //Svc
            services.AddTransient <IApplicantDomainService, ApplicantDomainService>();
            //Validation
            services.AddTransient <IValidator <Applicant>, ApplicantValidation>();
            services.AddMvc().AddFluentValidation(fvc => fvc.RegisterValidatorsFromAssemblyContaining <Startup>());//Todo check Duplicate with upper lone

            //Localization
            services.AddJsonLocalization(opts => { opts.ResourcesPath = "Resources"; });

            //Retry and Fallback policies
            var policyWrap = Policy.WrapAsync(FallbackPolicy(), GetRetryPolicy());

            services.AddHttpClient("HttpClient").AddPolicyHandler(policyWrap);
            //ServiceProvider
            ServiceProviderHandler.Initialize(services.BuildServiceProvider());
        }
Exemplo n.º 2
0
 protected T GetService <T>() => ServiceProviderHandler.GetService <T>();