Eu estou acompanhando o curso e aplicando os conceitos novos que estou aprendendo na minha aplicação, eu não consigo ver como criar este serviço pode ser aplciavel em todos os casos. O padrão é fazer toda a a lógica de gravação no banco de dados em um service?
veja bem a minha adaptação:
[Route("api/register")]
[HttpPost]
public async Task<IActionResult> Register([FromBody] CreateUserDto userDto)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var emailexists = await _userManager.FindByEmailAsync(userDto.Email);
if (emailexists != null)
{
ModelState.AddModelError("Email", "Email Alrealdy Exists");
return BadRequest(ModelState);
}
var user = _mapper.Map<User>(userDto);
var result = await _userManager.CreateAsync(user, userDto.Password);
foreach(SocialProfileDto socialProfileDto in userDto.SocialProfiles)
{
var socialProvider = _context.SocialProviders.FirstOrDefault(x => x.Name.ToLower() == socialProfileDto.Provider.ToLower());
var socialProfile = new SocialProfile()
{
UserId = user.Id,
SocialProviderId = socialProvider.Id,
Profile = socialProfileDto.Profile
};
await _context.SocialProfiles.AddAsync(socialProfile);
await _context.SaveChangesAsync();
}
return CreatedAtAction("GetUser", user);
}
Em um contexto que o usuário que estou criando vai também estar cadastrando seus perfis em redes sociais, o da lógica eu envio para os serviços?