示例#1
0
        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.")));
        }