示例#1
0
        public void ConfigureServices(IServiceCollection services)
        {
            #region ConfigCabecalho

            services.AddCors();

            #endregion


            #region CookieseRecursosDeCulture

            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            services.Configure <CookiePolicyOptions>(options =>
            {
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });


            services.AddLocalization(opts =>
            {
                opts.ResourcesPath = "Recurso";
            });

            services.AddMvc()
            .AddViewLocalization(
                opts => { opts.ResourcesPath = "Recurso"; })
            .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
            .AddDataAnnotationsLocalization()
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            services.Configure <RequestLocalizationOptions>(opts =>
            {
                var linguasSuportadas = new List <CultureInfo> {
                    new CultureInfo("pt-BR"),
                    new CultureInfo("en-US")
                };

                opts.DefaultRequestCulture = new RequestCulture(culture: "pt-BR", uiCulture: "pt-BR");
                opts.SupportedCultures     = linguasSuportadas;
                opts.SupportedUICultures   = linguasSuportadas;
            });

            #endregion


            #region ConfiguracaoDeBase

            var connection = Configuration["ConnectionStrings:DefaultConnection"];

            //Utilizando SqlServer
            // services.AddDbContext<RDContextoDaAplicacao>(options =>
            //    options.UseSqlServer(connection)
            // );

            //Utilizando SqLite
            services.AddDbContext <RDContextoDaAplicacao>(options => options
                                                          .UseSqlite(connection, builder => builder
                                                                     .MigrationsAssembly(typeof(Startup).Assembly.FullName)));

            //Log Sql Server
            // services.AddTransient<RDContextoLog>().AddDbContext<RDContextoLog>(options =>
            // options.UseSqlServer(connection));

            services.AddTransient <RDContextoLog>().AddDbContext <RDContextoLog>(options =>
                                                                                 options.UseSqlite(connection));


            #endregion


            #region ConfiguracaoUsuario
            services.AddIdentity <UsuarioAplicacao, IdentityRole>()
            .AddEntityFrameworkStores <RDContextoDaAplicacao>()
            .AddDefaultTokenProviders();

            services.Configure <IdentityOptions>(options =>
            {
                options.User.RequireUniqueEmail = true;

                options.Password.RequireDigit           = false;
                options.Password.RequireLowercase       = false;
                options.Password.RequireNonAlphanumeric = false;
                options.Password.RequireUppercase       = false;
                options.Password.RequiredLength         = 8;
                options.Password.RequiredUniqueChars    = 1;
            });

            services.Configure <DataProtectionTokenProviderOptions>(o =>
                                                                    o.TokenLifespan = TimeSpan.FromHours(3));

            services.AddAuthentication()
            .AddGoogle(options =>
            {
                IConfigurationSection googleAuthNSection =
                    Configuration.GetSection("Authentication:Google");
                //Caso queira utilizar pelo secrect manager
                //options.ClientId = googleAuthNSection["Authentication:Google:ClientId"];
                //options.ClientSecret = googleAuthNSection["Authentication:Google:ClientSecret"];
                options.ClientId     = Configuration["Authentication:Google:ClientId"];
                options.ClientSecret = Configuration["Authentication:Google:ClientSecret"];
            });

            #endregion


            #region ServiceEmail

            services.AddTransient <IEmailSender, EnviarEmail>();
            services.Configure <AutorizacaoEmail>(Configuration);

            #endregion


            #region repositorios

            services.AddTransient <IProjetoRepositorio, ProjetoRepositorio>();
            services.AddTransient <IAnaliseRepositorio, AnaliseRepositorio>();
            services.AddTransient <ICaracteristicaRepositorio, CaracteristicaRepositorio>();
            services.AddTransient <ISujeitoRepositorio, SujeitoRepositorio>();
            services.AddTransient <IGrupoRepositorio, GrupoRepositorio>();
            services.AddTransient <IMedicaoRepositorio, MedicaoRepositorio>();
            services.AddTransient <IExperimentoRepositorio, ExperimentoRepositorio>();
            services.AddTransient <IComentarioRepositorio, ComentarioRepositorio>();
            services.AddTransient <IAdminRepositorio, AdminRepositorio>();
            services.AddTransient <IColaboradorRepositorio, ColaboradorRepositorio>();
            services.AddTransient <IExportarCsv, ExportarCsv>();

            #endregion


            #region LogConfig


            _contextoLog = services.BuildServiceProvider()
                           .GetService <RDContextoLog>();

            #endregion
        }
示例#2
0
 public CustomLogger(string name, CustonLoggerProviderConfiguration logger, RDContextoLog context)
 {
     this.loggerName   = name;
     this.loggerConfig = logger;
     this._context     = context;
 }