Example #1
0
        public int Atualizar(EspecialistaDto especialistaDto, int id)
        {
            EspecialistaDomain especialista = _context.Especialistas.FirstOrDefault(x => x.Id == id);

            // atualizar dados
            especialista.Nome          = especialistaDto.Nome;
            especialista.Especialidade = especialistaDto.Especialidade;

            _context.Especialistas.Update(especialista);

            if (!string.IsNullOrEmpty(especialistaDto.Email) && !string.IsNullOrEmpty(especialistaDto.Senha))
            {
                //achar usuario relacionado
                UsuarioDomain usuario    = _context.Usuarios.FirstOrDefault(x => x.Id == especialista.UsuarioId);
                UsuarioDto    usuarioDto = new UsuarioDto {
                    Email = especialistaDto.Email,
                    Senha = especialistaDto.Senha
                };

                var novoUsuario = new AuthRepository(_context).CriarUsuario(usuarioDto);
                usuario.Email         = novoUsuario.Email;
                usuario.PasswordHash  = novoUsuario.PasswordHash;
                usuario.PasswordSalt  = novoUsuario.PasswordSalt;
                usuario.DataAlteracao = DateTime.Now;

                _context.Usuarios.Update(usuario);
            }

            return(_context.SaveChanges());
        }
Example #2
0
        public int Deletar(int id)
        {
            //encontrar funcionario pelo id
            EspecialistaDomain especialista = _context.Especialistas.FirstOrDefault(x => x.Id == id);
            UsuarioDomain      usuario      = _context.Usuarios.FirstOrDefault(y => y.Id == especialista.UsuarioId);

            //remover funcionario e usuario
            _context.Especialistas.Remove(especialista);
            _context.Usuarios.Remove(usuario);

            return(_context.SaveChanges());
        }
Example #3
0
        public EspecialistaDomain BuscarPorId(int id)
        {
            try{
                EspecialistaDomain especialista = _context.Especialistas
                                                  .Include(e => e.Usuario)
                                                  .ThenInclude(u => u.Permissoes)
                                                  .ThenInclude(p => p.Permissao)
                                                  .FirstOrDefault(x => x.Id == id);

                return(especialista);
            }
            catch (Exception e) {
                throw new Exception(e.Message);
            }
        }
        public IActionResult BuscarPorId(int id)
        {
            try{
                EspecialistaDomain especialista = _repo.BuscarPorId(id);

                if (especialista == null)
                {
                    return(NotFound("Especialista não encontrado(a)"));
                }

                return(Ok(especialista));
            }
            catch (Exception e) {
                throw new Exception(e.Message);
            }
        }
Example #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="especialistaDto"></param>
        /// <returns></returns>
        public EspecialistaDomain CadastrarEspecialista(EspecialistaDto especialistaDto)
        {
            try{
                //criar UsuarioDto e criar UsuarioDomain com senha hash
                var usuarioDto = new UsuarioDto {
                    Email = especialistaDto.Email,
                    Senha = especialistaDto.Senha
                };

                UsuarioDomain usuario = CriarUsuario(usuarioDto);

                //inserir no banco
                _context.Usuarios.Add(usuario);

                //criar e inserir EspecialistaDomain no banco
                EspecialistaDomain especialista = new EspecialistaDomain {
                    Nome          = especialistaDto.Nome,
                    Especialidade = especialistaDto.Especialidade,
                    Usuario       = usuario
                };

                PermissaoDomain permissao = _context.Permissoes.FirstOrDefault(x => x.Permissao == "Especialista");

                UsuarioPermissaoDomain usuarioPermissao = new UsuarioPermissaoDomain {
                    UsuarioId   = usuario.Id,
                    PermissaoId = permissao.Id
                };

                _context.UsuariosPermissoes.Add(usuarioPermissao);

                _context.Especialistas.Add(especialista);

                //salvar alterações
                _context.SaveChanges();

                //retornar especialista com include de usuário
                return(especialista);
            }
            catch (Exception e) {
                throw new Exception(e.Message);
            }
        }