diff --git a/CleanArchitecture/CleanArchitecture.Data/Email/EmailService.cs b/CleanArchitecture/CleanArchitecture.Data/Email/EmailService.cs index cd08585..a30d269 100644 --- a/CleanArchitecture/CleanArchitecture.Data/Email/EmailService.cs +++ b/CleanArchitecture/CleanArchitecture.Data/Email/EmailService.cs @@ -4,12 +4,6 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using SendGrid; using SendGrid.Helpers.Mail; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Security.Cryptography; -using System.Text; -using System.Threading.Tasks; namespace CleanArchitecture.Infrastructure.Email { diff --git a/CleanArchitecture/CleanArchitecture.Data/InfrastructureServiceRegistration.cs b/CleanArchitecture/CleanArchitecture.Data/InfrastructureServiceRegistration.cs new file mode 100644 index 0000000..bab7e21 --- /dev/null +++ b/CleanArchitecture/CleanArchitecture.Data/InfrastructureServiceRegistration.cs @@ -0,0 +1,34 @@ +using CleanArchitecture.Application.Contracts.Infrastructure; +using CleanArchitecture.Application.Contracts.Persistence; +using CleanArchitecture.Application.Models; +using CleanArchitecture.Infrastructure.Persistence; +using CleanArchitecture.Infrastructure.Repositories; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; + +namespace CleanArchitecture.Infrastructure +{ + public static class InfrastructureServiceRegistration + { + + public static IServiceCollection AddInfrastructureServices(this IServiceCollection services, IConfiguration configuration) + { + var dbConnectionString = configuration.GetConnectionString("ConnectionString"); + services.AddDbContext(options => + + options.UseMySql(dbConnectionString, ServerVersion.AutoDetect(dbConnectionString)) + .LogTo(Console.WriteLine, new[] { DbLoggerCategory.Database.Command.Name }, Microsoft.Extensions.Logging.LogLevel.Information) + ); + + services.AddScoped(typeof(IAsyncRepository<>), typeof(RepositoryBase<>)); + services.AddScoped(); + services.AddScoped(); + + services.Configure(c =>configuration.GetSection("EmailSettings")); + services.AddTransient(); + + return services; + } + } +} diff --git a/CleanArchitecture/CleanArchitecture.Data/Repositories/RepositoryBase.cs b/CleanArchitecture/CleanArchitecture.Data/Repositories/RepositoryBase.cs index 0218069..b0eefe1 100644 --- a/CleanArchitecture/CleanArchitecture.Data/Repositories/RepositoryBase.cs +++ b/CleanArchitecture/CleanArchitecture.Data/Repositories/RepositoryBase.cs @@ -9,9 +9,9 @@ namespace CleanArchitecture.Infrastructure.Repositories public class RepositoryBase : IAsyncRepository where T : BaseDomainModel { protected readonly StreamerDbContext context; - public RepositoryBase(StreamerDbContext _context) - { - context = _context; + public RepositoryBase(StreamerDbContext _context) + { + context = _context; } public async Task> GetAllAsync()