public async Task <ISaida> CadastrarPessoa([FromBody, SwaggerParameter("Informações de cadastro da pessoa.", Required = true)] CadastrarPessoaViewModel viewModel) { var cadastrarEntrada = new CadastrarPessoaEntrada( base.ObterIdUsuarioClaim(), viewModel.Nome); return(await _pessoaServico.CadastrarPessoa(cadastrarEntrada)); }
public IActionResult Cadastrar(CadastrarPessoaViewModel viewModel) { if (!ModelState.IsValid) { return(BadRequest(this.MensagemErro(ModelState))); } if (dbContext.Pessoa.ComCpf(viewModel.Cpf).Any()) { return(BadRequest(this.MensagemErro("Este cpf já foi cadastrado."))); } if (dbContext.Pessoa.ComEmail(viewModel.Email).Any()) { return(BadRequest(this.MensagemErro("Este e-mail já foi cadastrado."))); } if (dbContext.Usuario.ComLogin(viewModel.Login).Any()) { return(BadRequest(this.MensagemErro("Já existe um usuário com este login."))); } byte[] senhaHash, senhaSalt; CriarSenhaHash(viewModel.Senha, out senhaHash, out senhaSalt); Usuario usuario = new Usuario() { Login = viewModel.Login, SenhaHash = senhaHash, SenhaSalt = senhaSalt }; dbContext.Add(usuario); Pessoa pessoa = new Pessoa() { IdUsuario = usuario.IdUsuario, TipoPessoa = viewModel.TipoPessoa, Nome = viewModel.Nome, Cpf = viewModel.Cpf, Email = viewModel.Email, NumeroCelular = viewModel.NumeroCelular }; if (viewModel.Arquivo != null && viewModel.Arquivo.Length > 0) { if (!viewModel.Arquivo.FileName.Contains(".jpg") && !viewModel.Arquivo.FileName.Contains(".png") && !viewModel.Arquivo.FileName.Contains(".gif")) { return(BadRequest(this.MensagemErro("A imagem de estar no formato 'jpg', 'png' ou 'gif'"))); } using (var arquivoBytes = new MemoryStream()) { viewModel.Arquivo.CopyTo(arquivoBytes); pessoa.Foto = arquivoBytes.ToArray(); } } dbContext.Add(pessoa); dbContext.SaveChanges(); return(Ok(this.MensagemSucesso("Cadastrado com sucesso."))); }