Example #1
0
 public ServicoNotificacaoWhatsapp(TwilioConfiguracao twilioConfig, ILogger logger)
 {
     _twilioConfig = twilioConfig
                     ?? throw new ArgumentNullException(nameof(twilioConfig));
     _logger = logger
               ?? throw new ArgumentNullException(nameof(logger));
 }
Example #2
0
        public static void AddServiceDependency(this IServiceCollection services, IConfiguration configuration)
        {
            var smtpSetting = new SmtpConfiguracao();

            configuration.Bind(nameof(SmtpConfiguracao), smtpSetting);
            services.AddSingleton(smtpSetting);

            var twilioSettings = new TwilioConfiguracao();

            configuration.Bind(nameof(TwilioConfiguracao), twilioSettings);
            services.AddSingleton(twilioSettings);
            services.AddSingleton <ICacheServico, CacheServico>();

            // Application Services
            services.AddAutoMapper(new[] { Assembly.Load("MatchDayApp.Application"), Assembly.Load("MatchDayApp.Infra.CrossCutting") });
            services.AddTransient <IAutenticacaoServico, AutenticacaoServico>();
            services.AddTransient <IUsuarioServico, UsuarioServico>();
            services.AddTransient <ITimeServico, TimeServico>();
            services.AddTransient <IQuadraFutebolServico, QuadraFutebolServico>();
            services.AddTransient <IPartidaServico, PartidaServico>();
            services.AddMediatR(Assembly.Load("MatchDayApp.Application"));

            // App Services
            services.AddTransient <IAutenticacaoAppServico, AutenticacaoAppServico>();
            services.AddTransient <IUsuarioAppServico, UsuarioAppServico>();
            services.AddTransient <ITimeAppServico, TimeAppServico>();
            services.AddTransient <IQuadraAppServico, QuadraAppServico>();
            services.AddTransient <IPartidaAppServico, PartidaAppServico>();
        }
Example #3
0
        public ServicoNotificacaoSmsTeste()
        {
            var configServices = ServicesConfiguration.Configure();
            var logger         = configServices.GetRequiredService <ILogger>();

            _twilioSettings = configServices.GetRequiredService <TwilioConfiguracao>();

            _smsServico = new ServicoNotificacaoSms(_twilioSettings, logger);
        }
Example #4
0
 public EstrategiaServicoNotificacao(SmtpConfiguracao smtpConfig, TwilioConfiguracao twilioConfig, ILogger logger)
 {
     _smtpConfig = smtpConfig
                   ?? throw new ArgumentNullException(nameof(smtpConfig));
     _twilioConfig = twilioConfig
                     ?? throw new ArgumentNullException(nameof(twilioConfig));
     _logger = logger
               ?? throw new ArgumentNullException(nameof(logger));
 }
Example #5
0
        protected override void ConfigureWebHost(IWebHostBuilder builder)
        {
            builder
            .UseEnvironment("Development")
            .ConfigureServices(services =>
            {
                var configuration = services.BuildServiceProvider()
                                    .GetRequiredService <IConfiguration>();

                var descriptor = services.SingleOrDefault(
                    d => d.ServiceType ==
                    typeof(DbContextOptions <MatchDayAppContext>));

                if (descriptor != null)
                {
                    services.Remove(descriptor);
                }

                services.AddSqlServerDependency(configuration: null, isTest: true);

                var providerDbContext = services.BuildServiceProvider()
                                        .GetRequiredService <MatchDayAppContext>();
                providerDbContext.SeedFakeData();

                var smtpSetting = new SmtpConfiguracao();
                configuration.Bind(nameof(SmtpConfiguracao), smtpSetting);

                var twilioSettings = new TwilioConfiguracao();
                configuration.Bind(nameof(TwilioConfiguracao), twilioSettings);

                var jwtOptions = new JwtConfiguracao();
                configuration.Bind(nameof(JwtConfiguracao), jwtOptions);

                services.AddSingleton(twilioSettings);
                services.AddSingleton(smtpSetting);
                services.AddSingleton(jwtOptions);
                services.AddSingleton(new TokenValidationParameters
                {
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(jwtOptions.Secret)),
                    ValidateIssuer           = false,
                    ValidateAudience         = false,
                    RequireExpirationTime    = true,
                    ValidateLifetime         = true
                });

                services.AddSqlServerRepositoryDependency();
                services.AddServiceDependency(configuration);
                services.AddSingleton <IUnitOfWork>(new UnitOfWork(providerDbContext));
            });
        }
        public UsuarioEventHandler(IAutenticacaoServico autenticacaoServico, SmtpConfiguracao smtpSettings,
                                   TwilioConfiguracao twilioSettings, ILogger logger, IHttpContextAccessor accessor)
        {
            _autenticacaoServico = autenticacaoServico
                                   ?? throw new ArgumentNullException(nameof(autenticacaoServico));
            _smtpSettings = smtpSettings
                            ?? throw new ArgumentNullException(nameof(smtpSettings));
            _twilioSettings = twilioSettings
                              ?? throw new ArgumentNullException(nameof(twilioSettings));
            _accessor = accessor
                        ?? throw new ArgumentNullException(nameof(accessor));

            _messageStrategy = new EstrategiaServicoNotificacao(
                smtpSettings, twilioSettings, logger);
        }
        public static IServiceProvider Configure()
        {
            var configuration = new ConfigurationBuilder()
                                .SetBasePath(AppContext.BaseDirectory)
                                .AddJsonFile("appsettings.Development.json")
                                .AddUserSecrets(Assembly.GetExecutingAssembly())
                                .AddEnvironmentVariables()
                                .Build();

            var serviceProvider = new ServiceCollection();

            serviceProvider.AddDbContext <MatchDayAppContext>(options => options
                                                              .UseInMemoryDatabase($"TestDB-{Guid.NewGuid()}")
                                                              .UseInternalServiceProvider(new ServiceCollection()
                                                                                          .AddEntityFrameworkInMemoryDatabase()
                                                                                          .BuildServiceProvider())
                                                              .ConfigureWarnings(x => x.Ignore(InMemoryEventId.TransactionIgnoredWarning))
                                                              .EnableSensitiveDataLogging()
                                                              .EnableServiceProviderCaching(false));

            serviceProvider.AddSingleton <IUnitOfWork, UnitOfWork>();
            serviceProvider.AddAutoMapper(Assembly.Load("MatchDayApp.Application"));
            serviceProvider.AddTransient <IAutenticacaoServico, AutenticacaoServico>();
            serviceProvider.AddTransient <IUsuarioServico, UsuarioServico>();
            serviceProvider.AddTransient <ITimeServico, TimeServico>();
            serviceProvider.AddTransient <IQuadraFutebolServico, QuadraFutebolServico>();
            serviceProvider.AddTransient <IPartidaServico, PartidaServico>();

            var smtpSetting = new SmtpConfiguracao();

            configuration.Bind(nameof(SmtpConfiguracao), smtpSetting);

            var twilioSettings = new TwilioConfiguracao();

            configuration.Bind(nameof(TwilioConfiguracao), twilioSettings);

            var jwtOptions = new JwtConfiguracao();

            configuration.Bind(nameof(JwtConfiguracao), jwtOptions);

            serviceProvider.AddSingleton(twilioSettings);
            serviceProvider.AddSingleton(smtpSetting);
            serviceProvider.AddSingleton(jwtOptions);
            serviceProvider.AddSingleton(new TokenValidationParameters
            {
                ValidateIssuerSigningKey = true,
                IssuerSigningKey         = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(jwtOptions.Secret)),
                ValidateIssuer           = false,
                ValidateAudience         = false,
                RequireExpirationTime    = true,
                ValidateLifetime         = true
            });

            var loggerFactory = new LoggerFactory();

            serviceProvider.AddSingleton(typeof(ILogger),
                                         loggerFactory.CreateLogger("Testing"));

            serviceProvider.AddMediatR(Assembly.Load("MatchDayApp.Application"));

            return(serviceProvider
                   .BuildServiceProvider());
        }