コード例 #1
0
        public Usuario Insert(Usuario usuario)
        {
            usuario.Token = GenerateToken.GetNewToken();
            usuario.Foto  = "profileblank.jpg";
            usuario.Senha = MD5PasswordEncryptor.MD5Hash(usuario.Senha);

            //UsuarioCurso uc = new UsuarioCurso();
            //uc.CursoID = 1;
            //uc.DataInclusao = DateTime.Now;
            //usuario.UsuarioCurso.Add(uc);

            Grupo g = _context.Grupos.Find(3);

            usuario.Grupos.Add(g);


            _context.Usuarios.Add(usuario);
            _context.SaveChanges();
            //_repository.SaveChanges(AuditoriaFactory.Create("Usuario.Cadastro"));

            return(usuario);
        }
        // POST api/usuario/
        public IHttpActionResult Post(Usuario vm)
        {
            vm.Token = GenerateToken.GetNewToken();
            vm.Foto  = "profileblank.jpg";


            // Regra 1 - Verificar se o objeto enviado é valido
            if (!ModelState.IsValid)
            {
                return(StatusCode(System.Net.HttpStatusCode.NotAcceptable)); //retorna 406
            }
            // Regra 2 - Aplicar trim nos campos de string
            vm.Nome  = vm.Nome.LimpaString();
            vm.Email = vm.Email.LimpaString();
            vm.Senha = vm.Senha.LimpaString();
            vm.Foto  = vm.Foto.LimpaString();
            vm.CPF   = vm.CPF.LimpaString();
            vm.RG    = vm.RG.LimpaString();

            // Regra 3 - verificar se ja nao existe um usuario com o mesmo email cadastrado
            if (_context.Usuarios.Any(p => p.Email == vm.Email))
            {
                return(StatusCode(System.Net.HttpStatusCode.Conflict)); //retorna 409
            }
            try
            {
                // Regra 4 - Cria novo Usuario somente as propriedades permitidas
                var novoUsuario = new Usuario
                {
                    Token              = GenerateToken.GetNewToken(),
                    Nome               = vm.Nome,
                    Email              = vm.Email,
                    Senha              = vm.Senha,
                    Foto               = vm.Foto,
                    CPF                = vm.CPF,
                    RG                 = vm.RG,
                    Telefone           = vm.Telefone,
                    TelefoneEmergencia = vm.TelefoneEmergencia,
                    Celular            = vm.Celular,
                    EstadoCivil        = vm.EstadoCivil,
                    Sexo               = vm.Sexo,
                    DataNascimento     = vm.DataNascimento
                };

                if (vm.Enderecos.Any())
                {
                    foreach (var item in vm.Enderecos)
                    {
                        novoUsuario.Enderecos.Add(new Endereco
                        {
                            CEP         = item.CEP,
                            Logradouro  = item.Logradouro,
                            Numero      = item.Numero,
                            Complemento = item.Complemento,
                            Bairro      = item.Bairro,
                            Localidade  = item.Localidade,
                            UF          = item.UF,
                            CodIBGE     = item.CodIBGE,
                            CodGIA      = item.CodGIA,
                            Apagado     = false
                        });
                    }
                }

                // Regra 5 - Adiciona Usuario na Base de dados
                _repository.Insert(novoUsuario);

                var urlRegistro = string.Format("/api/usuarios/{0}", novoUsuario.UsuarioID);
                return(Created(urlRegistro, novoUsuario));
            }
            catch (System.Exception e)
            {
                return(StatusCode(System.Net.HttpStatusCode.ExpectationFailed));
            }
        }