public async Task <IActionResult> ConfirmarConta([FromBody] ConfirmarClienteDTO model) { _logger.LogDebug("A executar api/cliente/confirmar -> Post"); if (model is null) { _logger.LogWarning("O objeto ConfirmarClienteDTO é null!"); return(BadRequest(nameof(model))); } try { ServiceResult resultado = _clienteBusiness.ConfirmarConta(model); if (resultado.Sucesso) { _logger.LogInformation($"O Cliente com Email {model.Email} confirmou a sua conta com sucesso."); ServiceResult <Email> resultadoEmails = _clienteBusiness.GetEmailBoasVindas(model.Email, _webHostEnvironment.ContentRootPath); if (resultadoEmails.Sucesso) { await _emailSenderService.SendEmail(model.Email, resultadoEmails.Resultado); _logger.LogInformation("Email de Boas Vindas enviado com sucesso."); return(Ok()); } else { _logger.LogInformation("Ocorreu um erro na leitura do Email de Boas Vindas."); return(BadRequest(resultadoEmails.Erros)); } } else { _logger.LogInformation("Ocorreu um erro ao confirmar conta."); return(BadRequest(resultado.Erros)); } } catch (ArgumentNullException e) { _logger.LogError(e, e.Message); return(BadRequest(new { message = e.Message })); } catch (Exception e) { _logger.LogError(e, e.Message); return(StatusCode(500)); } }