private void EnviaEmailConfirmacao (ApplicationUser user) { var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id }, protocol: Request.Url.Scheme); _enviarEmail = new EnviaEmail(); var corpo = "Por favor confirme sua conta clicando neste link: <a href=" + '\u0022' + callbackUrl + '\u0022' + ">Clique aqui</a>"; var assunto = "Confirme seu email"; var send = _enviarEmail.EnviaEmailConfirmacao(user.Email, corpo, assunto); if (!send.Key) { var logVm = new LogViewModel(); logVm.Mensagem = send.Value; logVm.Controller = "Prestador"; logVm.View = "EnviaEmailConfirmacao"; var log = Mapper.Map<LogViewModel, Log>(logVm); _logAppService.SaveOrUpdate(log); } }
public async Task<ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl) { try { if (User.Identity.IsAuthenticated) { return RedirectToAction("Index", "Manage"); } if (ModelState.IsValid) { // Pegar a informação do login externo. var info = await AuthenticationManager.GetExternalLoginInfoAsync(); if (info == null) { return View("ExternalLoginFailure"); } var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user); if (result.Succeeded) { result = await _userManager.AddLoginAsync(user.Id, info.Login); if (result.Succeeded) { await _signInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); return RedirectToLocal(returnUrl); } } AddErrors(result); } ViewBag.ReturnUrl = returnUrl; return View(model); } catch (Exception e) { var logVm = new LogViewModel(); logVm.Mensagem = e.Message; logVm.Controller = "Account"; logVm.View = "ExternalLoginConfirmation"; var log = Mapper.Map<LogViewModel, Log>(logVm); _logAppService.SaveOrUpdate(log); return RedirectToAction("ErroAoCadastrar"); } }
public async Task<ActionResult> Register(RegisterViewModel model) { try { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { await _signInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user.Id); var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); await _userManager.SendEmailAsync(user.Id, "Confirme sua Conta", "Por favor confirme sua conta clicando neste link: <a href='" + callbackUrl + "'></a>"); ViewBag.Link = callbackUrl; return View("DisplayEmail"); } AddErrors(result); } // If we got this far, something failed, redisplay form return View(model); } catch (Exception e) { var logVm = new LogViewModel(); logVm.Mensagem = e.Message; logVm.Controller = "Account"; logVm.View = "Register"; var log = Mapper.Map<LogViewModel, Log>(logVm); _logAppService.SaveOrUpdate(log); return RedirectToAction("ErroAoCadastrar"); } }
public ActionResult Create(PrestadorUsuarioViewModel prestadorUsuario, string cpf, string cnpj) { try { if (ModelState.IsValid) { var retorno = _userManager.FindByEmail(prestadorUsuario.pres_email); if (retorno != null) { ModelState.AddModelError("pres_email", "Email já cadastrado"); return View(prestadorUsuario); } else { var prestador = new Prestador(); //primeiro efetua o cadastro do usuario var user = new ApplicationUser { UserName = prestadorUsuario.pres_email, Email = prestadorUsuario.pres_email }; //adicionar a role para este usuario IdentityUserRole role = new IdentityUserRole(); role.RoleId = "2"; //role 2 e role prestador role.UserId = user.Id; user.Roles.Add(role); //cria o usuario var result = _userManager.Create(user, prestadorUsuario.Senha); EnviaEmailConfirmacao(user); if (result.Succeeded) { prestadorUsuario.pres_cpf_cnpj = cpf.Replace("-", "").Replace("/", "").Replace(".", ""); //pega o usuario cadastrado e adiciona ele no objeto prestador Usuario usuarioCadastrado = new Usuario(); usuarioCadastrado = _usuarioApp.ObterPorEmail(prestadorUsuario.pres_email); prestador.Usuario = usuarioCadastrado; prestador.pres_Nome = prestadorUsuario.pres_nome; prestador.pres_Email = prestadorUsuario.pres_email; prestador.pres_Cpf_Cnpj = prestadorUsuario.pres_cpf_cnpj; prestador.pres_Endereco = prestadorUsuario.pres_Endereco; prestador.pres_Telefone_Celular = prestadorUsuario.pres_telefone_celular; prestador.pres_Telefone_Residencial = prestadorUsuario.pres_telefone_residencial; prestador.status = EnumClass.EnumStatus.Ativo; prestador.pres_Raio_Recebimento = prestadorUsuario.pres_Raio_Recebimento; prestador.pres_latitude = prestadorUsuario.pres_Latitude; prestador.pres_longitude = prestadorUsuario.pres_Longitude; var endereco = prestador.pres_Endereco; var partes = endereco.Split(','); foreach (var parte in partes.Where(s => s.Contains("-"))) { var separar = parte.Split('-'); var ufs = " AC, AL, AP, AM, BA, CE, DF, ES, GO, MA, MT, MS, MG, PA,PB, PR, PE, PI, RJ, RN, RS, RO, RR, SC, SP, SE, TO"; if (ufs.Contains(separar[1])) { prestador.Estado = (EnumClass.EnumEstados)Enum.Parse(typeof(EnumClass.EnumEstados), separar[1]); prestador.Cidade = separar[0]; } else continue; } _prestadorApp.SaveOrUpdate(prestador); //redireciona o cara para continuar o processo de cadastro dos serviços return RedirectToAction("ServicosCategorias", "Servico", new { cpf = prestador.pres_Cpf_Cnpj, nome = prestador.pres_Nome, email = prestador.pres_Email, celular = prestador.pres_Telefone_Celular, editarPerfil = false }); } else { return View(prestadorUsuario); } } } else { return View(prestadorUsuario); } } catch (Exception e) { var logVm = new LogViewModel(); logVm.Mensagem = e.Message; logVm.Controller = "Prestador"; logVm.View = "Create"; var log = Mapper.Map<LogViewModel, Log>(logVm); _logAppService.SaveOrUpdate(log); return RedirectToAction("ErroAoCadastrar"); } }