public IActionResult CadastrarAdministrador([FromForm] AdministradorStandaloneViewModel usuarioModel) { try { CadastrarUsuarioViewModel usuario = UsuarioRepository.RetornarUsuarioViewModel(usuarioModel); if (usuario.FotoPerfil != null && usuario.FotoPerfil.Length > 0) { string fileExt = Path.GetExtension(usuarioModel.FotoPerfil.FileName); if (fileExt != ".png" && fileExt != ".jpeg" && fileExt != ".jpg") { return(BadRequest(new { mensagem = "Os únicos formatos de arquivo suportados são .jpeg e .png." })); } } UsuarioRepository.CadastrarUsuario(usuario); Email.Enviar(UsuarioRepository.RetornarEmUsuarios(usuario)); return(Ok()); } catch (Exception ex) { return(BadRequest(new { mensagem = "Erro: " + ex })); } }
public string Salvar(CadastrarUsuarioViewModel viewModel) { if (!ModelState.IsValid) { return(ModelState.Values.SelectMany(v => v.Errors).First().ErrorMessage); } if (viewModel != null) { using (DbCrud contextObj = new DbCrud()) { Usuario usuario = new Usuario(); usuario.Nome = viewModel.Nome; usuario.Telefone = viewModel.Telefone; usuario.Email = viewModel.Email; usuario.Cpf = viewModel.Cpf; contextObj.Usuarios.Add(usuario); contextObj.SaveChanges(); return("Usuário cadastado com sucesso."); } } else { return("Usuário não Cadastrado"); } }
public void CadastrarUsuario(CadastrarUsuarioViewModel usuario) { Usuarios usuarioTemp; // Defini os valores do objeto Usuario usuarioTemp = new Usuarios { Nome = usuario.Nome, Email = usuario.Email, Senha = usuario.Senha, DataCriacao = DateTime.Now, Telefone = usuario.Telefone, IdTipoUsuario = usuario.IdTipoUsuario, IdEstabelecimento = usuario.IdEstabelecimento }; usuarioTemp = new Usuarios { Nome = usuario.Nome, Email = usuario.Email, Senha = usuario.Senha, Telefone = usuario.Telefone, DataCriacao = DateTime.Now, IdTipoUsuario = usuario.IdTipoUsuario, IdEstabelecimento = usuario.IdEstabelecimento }; using (DesafioPluftContext ctx = new DesafioPluftContext()) { ctx.Usuarios.Add(usuarioTemp); ctx.SaveChanges(); } }
public ActionResult CadastrarUsuario() { CadastrarUsuarioViewModel objCadastrarUsuario = new CadastrarUsuarioViewModel(); //objCadastrarUsuario.Nome = "Fernando Henrique"; //objCadastrarUsuario.Email = "*****@*****.**"; objCadastrarUsuario.Sexo = ListaSexo(); return(View(objCadastrarUsuario)); }
public ActionResult CadastrarUsuario(CadastrarUsuarioViewModel usuario) { usuario.Sexo = ListaSexo(); if (!ModelState.IsValid) { ViewBag.Erro = "Dados inválidos"; return(View(usuario)); } SenaiChamadosDbContext objDbContext = new SenaiChamadosDbContext(); UsuarioDomain objUsuario = new UsuarioDomain(); try { //objUsuario.Id = Guid.NewGuid(); objUsuario.Nome = usuario.Nome; objUsuario.Email = usuario.Email; objUsuario.Senha = usuario.Senha; objUsuario.Telefone = usuario.Telefone; objUsuario.Cpf = usuario.Cpf.Replace(".", "").Replace("-", ""); objUsuario.Cep = usuario.Cep.Replace("-", ""); objUsuario.Logradouro = usuario.Logradouro; objUsuario.Numero = usuario.Numero; objUsuario.Complemento = usuario.Complemento; objUsuario.Bairro = usuario.Bairro; objUsuario.Cidade = usuario.Cidade; objUsuario.Estado = usuario.Estado; //objUsuario.DataCriacao = DateTime.Now; //objUsuario.DataAlteracao = DateTime.Now; using (UsuarioRepositorio _repUsuario = new UsuarioRepositorio()) { _repUsuario.Inserir(objUsuario); } TempData["Mensagem"] = "Usuário cadastrado"; return(RedirectToAction("Login")); } catch (System.Exception ex) { ViewBag.Erro = ex.Message; return(View(usuario)); } finally { objDbContext = null; objUsuario = null; } }
public void CadastrarUsuario(CadastrarUsuarioViewModel usuario) // O mesmo que cadastrar um administrador, tb serve para cadastrar um administrador. { Usuarios usuarioTemp; // Verifica se a imagem foi passada if (usuario.FotoPerfil != null && usuario.FotoPerfil.Length > 0) { // Defini o nome do arquivo var NomeArquivo = Guid.NewGuid().ToString().Replace("-", "") + Path.GetExtension(usuario.FotoPerfil.FileName); // Defini o caminho do arquivo var CaminhoArquivo = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\uploads\\imgs", NomeArquivo); // Salva a imagem no caminho informado acima using (var StreamImagem = new FileStream(CaminhoArquivo, FileMode.Create)) { usuario.FotoPerfil.CopyTo(StreamImagem); } // Defini os valores do objeto Usuario usuarioTemp = new Usuarios { Nome = usuario.Nome, Email = usuario.Email, Senha = usuario.Senha, Telefone = usuario.Telefone, Fotoperfil = "/uploads/imgs/" + NomeArquivo, IdTipoUsuario = usuario.IdTipoUsuario, IdClinica = usuario.IdClinica }; } else { usuarioTemp = new Usuarios { Nome = usuario.Nome, Email = usuario.Email, Senha = usuario.Senha, Telefone = usuario.Telefone, IdTipoUsuario = usuario.IdTipoUsuario, IdClinica = usuario.IdClinica }; } using (SPMedGroupContext ctx = new SPMedGroupContext()) { ctx.Usuarios.Add(usuarioTemp); ctx.SaveChanges(); } }
public CadastrarUsuarioViewModel RetornarUsuarioViewModel(AdministradorStandaloneViewModel usuarioModel) { CadastrarUsuarioViewModel usuario = new CadastrarUsuarioViewModel() { Nome = usuarioModel.Nome, Email = usuarioModel.Email, Senha = usuarioModel.Senha, Telefone = usuarioModel.Telefone, DataCriacao = DateTime.Now, IdTipoUsuario = usuarioModel.IdTipoUsuario, IdEstabelecimento = usuarioModel.IdEstabelecimento }; return(usuario); }
public CadastrarUsuarioViewModel RetornarUsuarioViewModel(AdministradorStandaloneViewModel usuarioModel) { CadastrarUsuarioViewModel usuario = new CadastrarUsuarioViewModel() { Nome = usuarioModel.Nome, Email = usuarioModel.Email, Senha = usuarioModel.Senha, Telefone = usuarioModel.Telefone, FotoPerfil = usuarioModel.FotoPerfil, IdTipoUsuario = usuarioModel.IdTipoUsuario, IdClinica = usuarioModel.IdClinica }; return(usuario); }
public Usuarios RetornarEmUsuarios(CadastrarUsuarioViewModel usuarioViewModel) { // Defini os valores do objeto Usuario Usuarios usuarioTemp = new Usuarios { Nome = usuarioViewModel.Nome, Email = usuarioViewModel.Email, Senha = usuarioViewModel.Senha, Telefone = usuarioViewModel.Telefone, DataCriacao = DateTime.Now, IdEstabelecimento = usuarioViewModel.IdEstabelecimento }; return(usuarioTemp); }
public async Task <IActionResult> Registrar([FromBody] CadastrarUsuarioViewModel usuario) { if (ModelState.IsValid) { var result = await usuarioService.RegistrarUsuarioAsync(usuario); if (result.Success) { return(Ok(result)); } return(BadRequest(result)); } return(BadRequest()); }
public Usuarios RetornarEmUsuarios(CadastrarUsuarioViewModel usuarioViewModel) { // Defini os valores do objeto Usuario Usuarios usuarioTemp = new Usuarios { Nome = usuarioViewModel.Nome, Email = usuarioViewModel.Email, Senha = usuarioViewModel.Senha, Telefone = usuarioViewModel.Telefone, //FotoPerfil = "/uploads/imgs/" + NomeArquivo, IdTipoUsuario = usuarioViewModel.IdTipoUsuario, IdClinica = usuarioViewModel.IdClinica }; return(usuarioTemp); }
public IActionResult CadastrarAdministrador(AdministradorStandaloneViewModel usuarioModel) { try { CadastrarUsuarioViewModel usuario = UsuarioRepository.RetornarUsuarioViewModel(usuarioModel); UsuarioRepository.CadastrarUsuario(usuario); return(Ok()); } catch (Exception ex) { return(BadRequest(new { mensagem = "Erro: " + ex })); } }
[Authorize(Roles = "Administrador")]//Determina qual tipo de usuário pode utilizar esse Método public IActionResult CadastrarAdministrador(AdministradorStandaloneViewModel usuarioModel) { try //Tenta realizar a ação abaixo { CadastrarUsuarioViewModel usuario = UsuarioRepository.RetornarUsuarioViewModel(usuarioModel); //Cadastra um usuário utilizando ViewModel UsuarioRepository.CadastrarUsuario(usuario); // Utiliza o método 'CadastrarUsuario' para cadastrar o usuário informado return(Ok()); } catch (Exception ex) //Caso não consiga realizar a ação retorna status 400 com a mensagem do erro { return(BadRequest(new //Criando e retornando a mensagem de erro que será enviada { mensagem = "Erro: " + ex // Inserindo erro na mensagem })); } }
public CadastrarUsuarioPage() { InitializeComponent(); BindingContext = viewModel = new CadastrarUsuarioViewModel(this); txtEmail.Completed += (object sender, EventArgs e) => { txtSenha.Focus(); }; txtSenha.Completed += (object sender, EventArgs e) => { txtConfirmarSenha.Focus(); }; txtConfirmarSenha.Completed += (object sender, EventArgs e) => { viewModel.ContinuarCommand.Execute(null); }; }
private async void GravarTelEnd(int Id, CadastrarUsuarioViewModel novousuario) { TelefoneRepository _telefone = new TelefoneRepository(); Telefone NovoTelefone = new Telefone(); NovoTelefone.Telefone1 = novousuario.Telefone; NovoTelefone.UsuarioId = Id; await _telefone.Gravar(NovoTelefone); EnderecoRepository _endereco = new EnderecoRepository(); Endereco NovoEndereco = new Endereco(); NovoEndereco.Cidade = novousuario.Cidade; NovoEndereco.Cep = novousuario.Cep; NovoEndereco.Endereco1 = novousuario.Endereco; NovoEndereco.Numero = novousuario.Numero; NovoEndereco.UsuarioId = Id; await _endereco.Gravar(NovoEndereco); }
public ActionResult Cadastrar(CadastrarUsuarioViewModel u) { var usuario = new Usuario() { Nome = u.Nome, Email = u.Email, Senha = u.Senha }; var resultado = AcessoFacade.CadastrarUsuario(usuario); if (resultado.Sucesso) { return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError("Email", resultado.ConsolidaMensagens("<br>")); return(View("Cadastrar")); } }
public void CadastrarUsuario(CadastrarUsuarioViewModel usuario) // O mesmo que cadastrar um administrador, tb serve para cadastrar um administrador. { Usuarios usuarioTemp; // Defini os valores do objeto Usuario usuarioTemp = new Usuarios { Nome = usuario.Nome, Email = usuario.Email, Senha = usuario.Senha, Telefone = usuario.Telefone, IdTipoUsuario = usuario.IdTipoUsuario, IdClinica = usuario.IdClinica }; usuarioTemp = new Usuarios { Nome = usuario.Nome, Email = usuario.Email, Senha = usuario.Senha, Telefone = usuario.Telefone, IdTipoUsuario = usuario.IdTipoUsuario, IdClinica = usuario.IdClinica }; using (SPMedGroupContext ctx = new SPMedGroupContext()) { ctx.Usuarios.Add(usuarioTemp); ctx.SaveChanges(); } }
public async Task <ActionResult <Usuario> > Post([FromForm] CadastrarUsuarioViewModel usuario) { try { Usuario NovoUsuario = new Usuario(); var hash = new Hash(SHA512.Create()); if (Request.Form.Files.Count > 0) { var caminho = @"C:\Users\fic\Desktop\coo_react\coo_react\coorganicas\src\Assets"; //var caminho = @"C:\Users\AlefW\Desktop\Coorganicas_Backend\assets"; var pasta = "Perfil"; var file = Request.Form.Files[0]; var folderName = Path.Combine(caminho, "images", pasta); // var pathToSave = Directory.Exists(folderName); var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'); var fullPath = Path.Combine(folderName, fileName); // var dbPath = Path.Combine (folderName, fileName); using (var stream = new FileStream(fullPath, FileMode.Create)) { file.CopyTo(stream); } NovoUsuario.ImagemUsuario = fullPath; NovoUsuario.Nome = usuario.Nome; NovoUsuario.Email = usuario.Email; NovoUsuario.Cnpj = FuncoesReutilizar.RetornaCnpjFormatado(usuario.Cnpj); NovoUsuario.Senha = hash.CriptografarSenha(usuario.Senha); NovoUsuario.TipoUsuarioId = Convert.ToInt32(usuario.TipoUsuarioId); } else { var fileName = string.Empty; if (Request.Form.Files.Count == 0) { if (Convert.ToInt32(Request.Form["TipoUsuario"]) == 2) { fileName = "woman.png"; } else { fileName = "pessoa.png"; } } NovoUsuario.ImagemUsuario = fileName; NovoUsuario.Nome = usuario.Nome; NovoUsuario.Email = usuario.Email; NovoUsuario.Cnpj = FuncoesReutilizar.RetornaCnpjFormatado(usuario.Cnpj); NovoUsuario.Senha = hash.CriptografarSenha(usuario.Senha); NovoUsuario.TipoUsuarioId = Convert.ToInt32(usuario.TipoUsuarioId); } if (FuncoesReutilizar.ValidaCNPJ(usuario.Cnpj) == true) { await _repositorio.Gravar(NovoUsuario); // Após gravar o usuário no banco iremos gravar os dados de enderco e telefone // Aqui iremos chamar um metodo que retorna o ultimo usuario cadastrado que no caso foi o que acabamos de gravar var UsuarioGravado = await _repositorio.RetornarUltimoUsuarioCadastrado(); GravarTelEnd(UsuarioGravado.UsuarioId, usuario); return(await _repositorio.BuscarPorID(UsuarioGravado.UsuarioId)); } else { return(NotFound(new{ Mensagem = "CNPJ inválido!", erro = true })); } } catch (DbUpdateConcurrencyException) { throw; } }
public async Task <RespostaViewModel> RegistrarUsuarioAsync(CadastrarUsuarioViewModel user) { if (user == null) { user.Password = null; user.ConfirmPassword = null; return(new RespostaViewModel { Mensagem = "Faltaram informações para registrar o usuário.", Objeto = user, Success = false }); } if (user.Password != user.ConfirmPassword) { user.Password = null; user.ConfirmPassword = null; return(new RespostaViewModel { Mensagem = "Sua confirmação de senha está incorreta.", Objeto = user, Success = false }); } var usuario = new IdentityUser { Email = user.Email, UserName = user.Email }; var result = await userManager.CreateAsync(usuario, user.Password); if (result.Succeeded) { // Enviar e-mail de confirmação var confirmarEmailToken = await userManager.GenerateEmailConfirmationTokenAsync(usuario); var encodedEmailToken = Encoding.UTF8.GetBytes(confirmarEmailToken); var validEmailToken = WebEncoders.Base64UrlEncode(encodedEmailToken); string url = $"{configuration["AppUrl"]}/confirmaremail?userid={usuario.Id}&token={validEmailToken}"; string nome = usuario.Email.Substring(0, usuario.Email.IndexOf('@')); await mailService.SendEmailAsync(usuario.Email, "Confirme seu e-mail do url-shortener.", $"<!DOCTYPE html><html lang='en' xmlns='http://www.w3.org/1999/xhtml' xmlns:v='urn:schemas-microsoft-com:vml' xmlns:o='urn:schemas-microsoft-com:office:office'><head> <meta charset='utf-8'> <!-- utf-8 works for most cases --> <meta name='viewport' content='width=device-width'> <!-- Forcing initial-scale shouldn't be necessary --> <meta http-equiv='X-UA-Compatible' content='IE=edge'> <!-- Use the latest (edge) version of IE rendering engine --> <meta name='x-apple-disable-message-reformatting'> <!-- Disable auto-scale in iOS 10 Mail entirely --> <title></title> <!-- The title tag shows in email notifications, like Android 4.4. --> <link href='https://fonts.googleapis.com/css?family=Lato:300,400,700' rel='stylesheet'> <!-- CSS Reset : BEGIN --> <style> /* What it does: Remove spaces around the email design added by some email clients. */ /* Beware: It can remove the padding / margin and add a background color to the compose a reply window. */ html,body {{ margin: 0 auto !important; padding: 0 !important; height: 100% !important; width: 100% !important; background: #f1f1f1;}}/* What it does: Stops email clients resizing small text. */* {{ -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;}}/* What it does: Centers email on Android 4.4 */div[style*='margin: 16px 0'] {{ margin: 0 !important;}}/* What it does: Stops Outlook from adding extra spacing to tables. */table,td {{ mso-table-lspace: 0pt !important; mso-table-rspace: 0pt !important;}}/* What it does: Fixes webkit padding issue. */table {{ border-spacing: 0 !important; border-collapse: collapse !important; table-layout: fixed !important; margin: 0 auto !important;}}/* What it does: Uses a better rendering method when resizing images in IE. */img {{ -ms-interpolation-mode:bicubic;}}/* What it does: Prevents Windows 10 Mail from underlining links despite inline CSS. Styles for underlined links should be inline. */a {{ text-decoration: none;}}/* What it does: A work-around for email clients meddling in triggered links. */*[x-apple-data-detectors], /* iOS */.unstyle-auto-detected-links *,.aBn {{ border-bottom: 0 !important; cursor: default !important; color: inherit !important; text-decoration: none !important; font-size: inherit !important; font-family: inherit !important; font-weight: inherit !important; line-height: inherit !important;}}/* What it does: Prevents Gmail from displaying a download button on large, non-linked images. */.a6S {{ display: none !important; opacity: 0.01 !important;}}/* What it does: Prevents Gmail from changing the text color in conversation threads. */.im {{ color: inherit !important;}}/* If the above doesn't work, add a .g-img class to any image in question. */img.g-img + div {{ display: none !important;}}/* What it does: Removes right gutter in Gmail iOS app: https://github.com/TedGoas/Cerberus/issues/89 *//* Create one of these media queries for each additional viewport size you'd like to fix *//* iPhone 4, 4S, 5, 5S, 5C, and 5SE */@media only screen and (min-device-width: 320px) and (max-device-width: 374px) {{ u ~ div .email-container {{ min-width: 320px !important; }}}}/* iPhone 6, 6S, 7, 8, and X */@media only screen and (min-device-width: 375px) and (max-device-width: 413px) {{ u ~ div .email-container {{ min-width: 375px !important; }}}}/* iPhone 6+, 7+, and 8+ */@media only screen and (min-device-width: 414px) {{ u ~ div .email-container {{ min-width: 414px !important; }}}} </style> <!-- CSS Reset : END --> <!-- Progressive Enhancements : BEGIN --> <style> .primary{{background: #30e3ca;}}.bg_white{{background: #ffffff;}}.bg_light{{background: #fafafa;}}.bg_black{{background: #000000;}}.bg_dark{{background: rgba(0,0,0,.8);}}.email-section{{padding:2.5em;}}/*BUTTON*/.btn{{padding: 10px 15px;display: inline-block;}}.btn.btn-primary{{border-radius: 5px;background: #30e3ca;color: #ffffff;}}.btn.btn-white{{border-radius: 5px;background: #ffffff;color: #000000;}}.btn.btn-white-outline{{border-radius: 5px;background: transparent;border: 1px solid #fff;color: #fff;}}.btn.btn-black-outline{{border-radius: 0px;background: transparent;border: 2px solid #000;color: #000;font-weight: 700;}}h1,h2,h3,h4,h5,h6{{font-family: 'Lato', sans-serif;color: #000000;margin-top: 0;font-weight: 400;}}body{{font-family: 'Lato', sans-serif;font-weight: 400;font-size: 15px;line-height: 1.8;color: rgba(0,0,0,.4);}}a{{color: #30e3ca;}}table{{}}/*LOGO*/.logo h1{{margin: 0;}}.logo h1 a{{color: #30e3ca;font-size: 24px;font-weight: 700;font-family: 'Lato', sans-serif;}}/*HERO*/.hero{{position: relative;z-index: 0;}}.hero .text{{color: rgba(0,0,0,.3);}}.hero .text h2{{color: #000;font-size: 40px;margin-bottom: 0;font-weight: 400;line-height: 1.4;}}.hero .text h3{{font-size: 24px;font-weight: 300;}}.hero .text h2 span{{font-weight: 600;color: #30e3ca;}}/*HEADING SECTION*/.heading-section{{}}.heading-section h2{{color: #000000;font-size: 28px;margin-top: 0;line-height: 1.4;font-weight: 400;}}.heading-section .subheading{{margin-bottom: 20px !important;display: inline-block;font-size: 13px;text-transform: uppercase;letter-spacing: 2px;color: rgba(0,0,0,.4);position: relative;}}.heading-section .subheading::after{{position: absolute;left: 0;right: 0;bottom: -10px;content: '';width: 100%;height: 2px;background: #30e3ca;margin: 0 auto;}}.heading-section-white{{color: rgba(255,255,255,.8);}}.heading-section-white h2{{font-family: line-height: 1;padding-bottom: 0;}}.heading-section-white h2{{color: #ffffff;}}.heading-section-white .subheading{{margin-bottom: 0;display: inline-block;font-size: 13px;text-transform: uppercase;letter-spacing: 2px;color: rgba(255,255,255,.4);}}ul.social{{padding: 0;}}ul.social li{{display: inline-block;margin-right: 10px;}}/*FOOTER*/.footer{{border-top: 1px solid rgba(0,0,0,.05);color: rgba(0,0,0,.5);}}.footer .heading{{color: #000;font-size: 20px;}}.footer ul{{margin: 0;padding: 0;}}.footer ul li{{list-style: none;margin-bottom: 10px;}}.footer ul li a{{color: rgba(0,0,0,1);}}@media screen and (max-width: 500px) {{}} </style></head><body width='100%' style='margin: 0; padding: 0 !important; mso-line-height-rule: exactly; background-color: #f1f1f1;'><center style='width: 100%; background-color: #f1f1f1;'> <div style='display: none; font-size: 1px;max-height: 0px; max-width: 0px; opacity: 0; overflow: hidden; mso-hide: all; font-family: sans-serif;'> ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ </div> <div style='max-width: 600px; margin: 0 auto;' class='email-container'> <!-- BEGIN BODY --> <table align='center' role='presentation' cellspacing='0' cellpadding='0' border='0' width='100%' style='margin: auto;'> <tr> <td valign='top' class='bg_white' style='padding: 1em 2.5em 0 2.5em;'> <table role='presentation' border='0' cellpadding='0' cellspacing='0' width='100%'> <tr> <td class='logo' style='text-align: center;'> <h1><a href={url}>Confirme seu e-mail.</a></h1> </td> </tr> </table> </td> </tr><!-- end tr --> <tr> <td valign='middle' class='hero bg_white' style='padding: 3em 0 2em 0;'> <img src='https://i.imgur.com/juvlRYg.png' alt='' style='width: 300px; max-width: 600px; height: auto; margin: auto; display: block;'> </td> </tr><!-- end tr --><tr> <td valign='middle' class='hero bg_white' style='padding: 2em 0 4em 0;'> <table> <tr> <td> <div class='text' style='padding: 0 2.5em; text-align: center;'> <h2>Por favor, {nome} verifique seu e-mail do shortener clicando <a href={url}>aqui</a>.</h2> </div> </td> </tr> </table> </td> </tr><!-- end tr --> <!-- 1 Column Text + Button : END --> </table> </td> <td valign='top' width='33.333%' style='padding-top: 20px;'> </td> </tr><!-- end: tr --> </table> </div> </center></body></html>", nome); return(new RespostaViewModel { Mensagem = "Usuário registrado com sucesso!", Objeto = null, Success = true }); } user.Password = null; user.ConfirmPassword = null; return(new RespostaViewModel { Mensagem = "Não foi possível registrar o usuário.", Success = false, Objeto = user }); }