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());
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        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)));
        }
Exemple #5
0
        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));
        }