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); }
//[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)); }
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)); } }
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); }
//[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"); }
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); } }