Ejemplo n.º 1
0
        private (string, string, int) EnviaEmailAcordoEmpresa(TipoEmpresa tipo, int idEmpresa, int passoId, string descricaoOQueFazer, Guid guidSalvado)
        {
            Empresa empresa = new Empresa();

            switch (tipo)
            {
            case TipoEmpresa.Seguradora:
                empresa = _seguradora.SelecionarPorId(idEmpresa);
                break;

            case TipoEmpresa.Guincheiro:
                empresa = _guincheiro.SelecionarPorId(idEmpresa);
                break;

            case TipoEmpresa.Despachante:
                empresa = _despachante.SelecionarPorId(idEmpresa);
                break;

            case TipoEmpresa.Patio:
                empresa = _patio.SelecionarPorId(idEmpresa);
                break;

            case TipoEmpresa.Oficina:
                empresa = _oficina.SelecionarPorId(idEmpresa);
                break;
            }
            var link = $"https://engsalvage.azurewebsites.net/#/push/andamentoProcessoPush?guid={guidSalvado}&passo={passoId}";
            var html = EmailSendGrid.LayoutProximaAcao().Replace("{{nome}}", empresa.Nome).Replace("{{link}}", link).Replace("{{texto}}", descricaoOQueFazer);

            return(_email.Envia(empresa.Email, "Ação Necessária", html).Result);
        }
Ejemplo n.º 2
0
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> ChangeOrResetPassword([FromBody] UserEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.FindByEmailAsync(model.Email);

                if (user == null || !await _userManager.IsEmailConfirmedAsync(user))
                {
                    return(BadRequest("Error - Your account is not confirmed!"));
                }

                if (!string.Equals(user.UserName, model.UserName, StringComparison.CurrentCultureIgnoreCase))
                {
                    return(BadRequest("Error - The account credentials you provided are incorrect!"));
                }

                var _emailSender = new EmailSendGrid(_config);

                if (model.CurrentPassword == "resetme") //this means Reset Passowrd is requested
                {
                    //var code = await _userManager.GeneratePasswordResetTokenAsync(user);
                    //var callbackUrl = new Uri(Url.Link("ConfirmResetRoute",
                    //    new {userId = user.Id, token = code, newPass = model.NewPassword}));
                    //await _emailSender.SendEmailAsync(model.Email, "Reset Password",
                    //    $"Please reset your password by clicking here: <a href='{callbackUrl}'>link</a>");

                    var code = await _userManager.GeneratePasswordResetTokenAsync(user);

                    var callbackUrl = new Uri(Url.Link("ConfirmResetRoute",
                                                       new { userId = user.Id, token = code, newPass = model.NewPassword }));
                    var strUser    = user.FullName;
                    var strMessage = EmailTemplates.GetResetConfirmationEmail(strUser, callbackUrl.ToString());
                    await _emailSender.SendEmailAsync(user.Email, "Confirm Password Reset", strMessage);
                }
                else
                {
                    await _userManager.ChangePasswordAsync(user, model.CurrentPassword, model.NewPassword);
                }

                return(Ok()); //????
            }

            var message = string.Join(" | ", ModelState.Values
                                      .SelectMany(v => v.Errors)
                                      .Select(e => e.ErrorMessage));
            var s = message;

            return(BadRequest(ModelState));
        }
Ejemplo n.º 3
0
        public IActionResult Cadastrar(Usuarios usuario)
        {
            EmailSendGrid EnvioEmail = new EmailSendGrid();

            try
            {
                UsuarioRepository.Cadastrar(usuario);

                EnvioEmail.Incrementar(usuario.Email, usuario.Nome);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
Ejemplo n.º 4
0
        public void AtualizarPasso(Guid guidSalvado, PassoViewModel passoVM)
        {
            var passoAtual = _passo.SelecionarPorId(passoVM.IdPasso);
            var salvado    = _service.SelecionarPorId(guidSalvado);

            salvado.PassoEtapa = _passo.SelecionarPorId((int)salvado.PassoEtapa.Id);

            if (passoAtual.Ordem <= salvado.PassoEtapa.Ordem)
            {
                return;
            }

            var historico = new SalvadoHistorico();

            historico.DescricaoEvento  = $"[Atualização][De {salvado.PassoEtapa.Descricao} para {passoAtual.Descricao} - {DateTime.Now}] ";
            historico.DescricaoEvento += passoVM.Observacao;
            historico.IdSalvado        = (int)salvado.Id;
            historico.IdUsuario        = passoVM.IdUsuario ?? (int)_usuario.SelecionarPorId((Guid)passoVM.GuidUsuario).Id;
            historico.DataEvento       = DateTime.Now;

            salvado.PassoEtapa = passoAtual;

            //pegar o proximo passo
            var passoFuturo = _passo.SelecionarProximoPasso(++passoAtual.Ordem, (int)passoAtual.Workflow.Id);

            if (passoFuturo != null)
            {
                int idEmpresa = _service.SelecionarIdDependendoTipoEmpresa(passoFuturo.TipoEmpresaResponsavel, salvado.Guid);
                (string header, string body, int status)retorno = EnviaEmailAcordoEmpresa(passoFuturo.TipoEmpresaResponsavel, idEmpresa, (int)passoFuturo.Id, passoFuturo.DescricaoParaFazer, salvado.Guid);
            }
            else
            {
                var html       = EmailSendGrid.LayoutProcessoFinalizado(salvado);
                var seguradora = _seguradora.SelecionarPorId((int)salvado.Seguradora.Id);
                _email.Envia(seguradora.Email, "Nenhuma ação necessária", html);
            }

            _service.IncluirHistorico(historico);
            _service.Atualizar(salvado);
        }
Ejemplo n.º 5
0
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> ForgotPassword(string userEmail)
        {
            var _emailSender = new EmailSendGrid(_config);
            //if (ModelState.IsValid)
            //{
            var user = await _userManager.FindByEmailAsync(userEmail);

            if (user == null || !await _userManager.IsEmailConfirmedAsync(user))
            {
                return(BadRequest("Error - Your account is not confirmed!"));
            }

            var code = await _userManager.GeneratePasswordResetTokenAsync(user);

            //var callbackUrl = Url.ResetPasswordCallbackLink(user.Id, code, Request.Scheme);
            var callbackUrl = new Uri(Url.Link("ConfirmResetRoute", new { userId = user.Id, token = code }));
            await _emailSender.SendEmailAsync(userEmail, "Reset Password",
                                              $"Please reset your password by clicking here: <a href='{callbackUrl}'>link</a>");

            //return CreatedAtAction(GetUserByIdActionName, new { id = user.Id }, user); // ????
            return(Ok());
            //}
        }
 public async Task PostMessage()
 {
     var _emailSender = new EmailSendGrid(_configuration);
     await _emailSender.SendEmailAsync("*****@*****.**", "Confirm Password Reset", "test name");
 }
Ejemplo n.º 7
0
        public async Task <IActionResult> Register([FromBody] UserEditViewModel user)
        {
            try
            {
                var _emailSender = new EmailSendGrid(_config);
                if (!(await _authorizationService.AuthorizeAsync(User, Tuple.Create(user.Roles, new string[] { }),
                                                                 Policies.AssignAllowedRolesPolicy)).Succeeded)
                {
                    return(new ChallengeResult());
                }

                if (ModelState.IsValid)
                {
                    if (user == null)
                    {
                        return(BadRequest($"{nameof(user)} cannot be null"));
                    }

                    var appUser = Mapper.Map <ApplicationUser>(user);

                    var result = await _accountManager.CreateUserAsync(appUser, user.Roles, user.NewPassword);

                    if (result.Item1)
                    {
                        var userVM = await GetUserViewModelHelper(appUser.Id);

                        try
                        {
                            var code = await _userManager.GenerateEmailConfirmationTokenAsync(appUser);

                            var callbackUrl = new Uri(Url.Link("ConfirmEmailRoute",
                                                               new { userId = appUser.Id, token = code }));
                            var strUser    = user.FullName;
                            var strMessage = EmailTemplates.GetConfirmationEmailAdmin(strUser, callbackUrl.ToString(),
                                                                                      user.NewPassword);

                            //await _emailSender.SendEmailAsync(user.Email, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");
                            await _emailSender.SendEmailAsync(user.Email, "Confirm your account", strMessage);
                        }
                        catch (Exception ex)
                        {
                            var s = ex.Message;
                        }

                        return(CreatedAtAction(GetUserByIdActionName, new { id = userVM.Id }, userVM));
                    }

                    AddErrors(result.Item2);
                }
                else
                {
                    var message = string.Join(" | ", ModelState.Values
                                              .SelectMany(v => v.Errors)
                                              .Select(e => e.ErrorMessage));
                    var s = message;
                }

                return(BadRequest(ModelState));
            }
            catch (Exception ex)
            {
                var s = ex.Message;
                return(null);
            }
        }