public async Task EnviarEmailConfirmacaoCadastroAsync(Usuario usuario) { var token = await _userManager.GenerateEmailConfirmationTokenAsync(usuario); var callbackUrlAction = Url.Action( "ConfirmarEmail", "Usuario", new { userId = usuario.Id, code = token }, protocol: Request.Scheme); var templateView = Path.Combine(_hostingEnvironment.WebRootPath, "templates"); var htmlEmail = new StringBuilder(); using (StreamReader sr = new StreamReader(Path.Combine(templateView, Paginas.EMAIL_CONFIRMACAO_CADASTRO_TEMPLATE))) { htmlEmail.Append(sr.ReadToEnd()); htmlEmail.Replace("{{link-de-confirmacao}}", HtmlEncoder.Default.Encode(callbackUrlAction)); htmlEmail.Replace("{{usuario-nome}}", usuario.Nome); } await _email.EnviarEmail(usuario.Email, "Confirmação de Conta", htmlEmail.ToString()); }
public async Task <IActionResult> Alugar(AluguelViewModel aluguel) { if (ModelState.IsValid) { var usuario = await _usuarioRepositorio.PegarUsuarioLogado(User); var saldo = _contaRepositorio.PegarSaldoPeloId(usuario.Id); if (await _aluguelRepositorio.VerificarReserva(usuario.Id, aluguel.CarroId, aluguel.Inicio, aluguel.Fim)) { _logger.LogInformation("Usuário já possui essa reserva"); TempData["Aviso"] = "Você já possui essa reserva"; return(View(aluguel)); } else if (aluguel.PrecoTotal > saldo) { _logger.LogInformation("Saldo insuficiente"); TempData["Aviso"] = "Saldo insuficiente"; return(View(aluguel)); } else { Aluguel a = new Aluguel { UsuarioId = usuario.Id, CarroId = aluguel.CarroId, Inicio = aluguel.Inicio, Fim = aluguel.Fim, PrecoTotal = aluguel.PrecoTotal }; _logger.LogInformation("Enviando email com detalhes da reserva"); string assunto = "Reserva concluida com sucesso"; string mensagem = string.Format("seu veiculo já o aguarda. Você poderá pegá-lo dia {0}" + " e deverá devolve-lo dia {1}. O preço será R${2},00. Divirta-se !!! ", aluguel.Inicio, aluguel.Fim, aluguel.PrecoTotal); await _email.EnviarEmail(usuario.Email, assunto, mensagem); await _aluguelRepositorio.Inserir(a); _logger.LogInformation("Reserva feita"); _logger.LogInformation("Atualizando saldo do usuario"); var saldoUsuario = await _contaRepositorio.PegarSaldoPeloUsuarioId(usuario.Id); saldoUsuario.Saldo = saldoUsuario.Saldo - aluguel.PrecoTotal; await _contaRepositorio.Atualizar(saldoUsuario); _logger.LogInformation("Saldo atualizado"); return(RedirectToAction("Index", "Carros")); } } _logger.LogInformation("Informações inválidas"); return(View(aluguel)); }
public async Task <IActionResult> EnviarEmail(EmailViewModel meuEmail) { if (ModelState.IsValid) { await _email.EnviarEmail(meuEmail.Email, meuEmail.Assunto, meuEmail.Mensagem); return(View("EmailEnviado")); } return(View(meuEmail)); }
public async Task <IActionResult> Email() { string assunto = "Mensagem da Aplicação TDSTecnologia"; string mensagem = string.Format("Email enviado!!!"); await _email.EnviarEmail("*****@*****.**", assunto, mensagem); return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> AluguelCarro(AluguelViewModel aluguelViewModel) { if (ModelState.IsValid) { var usuario = await _usuarioRepositorio.PegarUsuarioLogado(User); var saldo = _contaRepositorio.PegarSaldoPeloId(usuario.Id); if (await _aluguelRepositorio.VerificarReserva(usuario.Id, aluguelViewModel.CarroId, aluguelViewModel.Inicio, aluguelViewModel.Fim)) { TempData["Aviso"] = "Você já possui essa reserva"; return(View(aluguelViewModel)); } else if (aluguelViewModel.PrecoTotal > saldo) { TempData["Aviso"] = "Saldo Insuficiente"; return(View(aluguelViewModel)); } else { Aluguel aluguel = new Aluguel { UsuarioId = usuario.Id, CarroId = aluguelViewModel.CarroId, Inicio = aluguelViewModel.Inicio, Fim = aluguelViewModel.Fim, PrecoTotal = aluguelViewModel.PrecoTotal }; string assunto = "Reserva concluida com sucesso"; string mensagem = string.Format("Veiculo em aguardo. Voce pode pegá-lo dia {0}" + " e deverá devolver dia {1}. O preco será R${2},00. Divirta-se", aluguel.Inicio, aluguel.Fim, aluguel.PrecoTotal); await _emailInterface.EnviarEmail(usuario.Email, assunto, mensagem); await _aluguelRepositorio.Inserir(aluguel); var saldoUsuario = await _contaRepositorio.PegarSaldoPeloUsuarioId(usuario.Id); saldoUsuario.Saldo = saldoUsuario.Saldo - aluguelViewModel.PrecoTotal; await _contaRepositorio.Atualizar(saldoUsuario); return(RedirectToAction("Index", "Carro")); } } return(View(aluguelViewModel)); }
static void Main(string[] args) { IContato cliente = Factory.GetCliente(); cliente.Nome = "Joao"; cliente.Email = "*****@*****.**"; cliente.Celular = "99999-8888"; IEmail email = Factory.GetEmail(); email.EnviarEmail(cliente, "Sobre seu saldo...", "Seu saldo está baixo"); IMensagemCelular sms = Factory.GetMensageiroCelular(); sms.EnviarMensagem(cliente, "Seu saldo está baixo"); Console.ReadLine(); }
public async Task <IActionResult> Contatar(ContatoViewModel model) { await _email.EnviarEmail(model.Email, model.Assunto, model.Mensagem); return(View(model)); }