public async Task <Response <OabValidada> > Handle(ValidarOabCommand request, CancellationToken cancellationToken)
        {
            OabValidada oab    = new OabValidada(request.CodigoAdvogado, request.Uf, request.NumeroOab, request.CaminhoImagem, request.Ativo, request.Existe);
            var         result = Response <OabValidada> .WithResult(null);

            CredenciaisAdvogado novasCredenciais = new CredenciaisAdvogado();
            var users = _context.UsuariosEscritorio
                        .Where(u => u.Credenciais.NumeroOab == request.NumeroOab).ToList();

            if (users == null)
            {
                result.AddError("Usuario não encontrado para modificar");
                return(result);
            }

            foreach (var user in users)
            {
                novasCredenciais = new CredenciaisAdvogado(request.NumeroOab, EstadoBrasileiro.ObterPorUF(request.Uf), request.CaminhoImagem);
                user.Credenciais = novasCredenciais;
                Permissao permissao       = new Permissao("OabValida", "true");
                bool      existePermissao = user.Permissoes.Any(p => p.Nome == "OabValida");
                if (!existePermissao)
                {
                    user.Permissoes.Add(permissao);
                }

                _context.UsuariosEscritorio.Update(user);
                await _context.SaveChangesAsync();
            }

            return(Response <OabValidada> .WithResult(oab));
        }
Exemple #2
0
 public UsuarioEscritorio(Guid officeId,
                          string username,
                          string senha,
                          InformacoesPessoais personalInfo,
                          List <Permissao> claims,
                          CredenciaisAdvogado credenciais) : base(Guid.NewGuid(), username, senha, personalInfo, claims)
 {
     CodigoEscritorio = officeId;
     Credenciais      = credenciais;
 }
Exemple #3
0
        public async Task <Response <List <Oab> > > Handle(ReenviarOabsValidacaoCommand request, CancellationToken cancellationToken)
        {
            var result = Response <Oab> .WithResult(null);

            CredenciaisAdvogado novasCredenciais = new CredenciaisAdvogado();
            var        users = _context.UsuariosEscritorio;
            Oab        oabSaida;
            List <Oab> oabs = new List <Oab>();

            foreach (var user in users)
            {
                oabSaida = new Oab(user.Codigo, user.Credenciais.NumeroOab, user.Credenciais.Estado.UF, $"{user.InformacoesPessoais.PrimeiroNome} {user.InformacoesPessoais.UltimoNome}");
                oabs.Add(oabSaida);
                ReenviarOabsValidacaoPublish.Publish(oabSaida);
            }

            return(Response <List <Oab> > .WithResult(oabs));
        }
Exemple #4
0
        public async Task <Response <UsuarioEscritorio> > Handle(ModificarUsuarioCommand request, CancellationToken cancellationToken)
        {
            var result = Response <UsuarioEscritorio> .WithResult(null);

            CredenciaisAdvogado novasCredenciais = new CredenciaisAdvogado();
            var user = await _context.UsuariosEscritorio
                       .FirstOrDefaultAsync(u => u.Codigo == request.Usuario.CodigoUsuario);

            if (user == null)
            {
                result.AddError("Usuario não encontrado para modificar");
                return(result);
            }

            if (user.Credenciais != null && user.Credenciais.CaminhoFoto != null && !user.Credenciais.CaminhoFoto.Equals(""))
            {
                novasCredenciais = new CredenciaisAdvogado(request.Usuario.NumeroOAB, EstadoBrasileiro.ObterPorCodigo(request.Usuario.Estado), user.Credenciais.CaminhoFoto);
            }
            else
            {
                novasCredenciais = new CredenciaisAdvogado(request.Usuario.NumeroOAB, EstadoBrasileiro.ObterPorCodigo(request.Usuario.Estado), "");
            }

            user.Credenciais = novasCredenciais;

            user.AtualizarInformacoesPessoais(new InformacoesPessoais(request.Usuario.Nome, request.Usuario.Sobrenome));

            if (request.Usuario.ehAdministrador == "true" && user.Permissoes.Exists(p => p.Nome == "EhAdministrador"))
            {
                user.Permissoes.Find(p => p.Nome == "EhAdministrador").ConcedePermissao();
            }
            else
            if (user.Permissoes.Exists(p => p.Nome == "EhAdministrador"))
            {
                user.Permissoes.Find(p => p.Nome == "EhAdministrador").RetiraPermissao();
            }


            _context.UsuariosEscritorio.Update(user);
            await _context.SaveChangesAsync();

            return(Response <UsuarioEscritorio> .WithResult(user));
        }
        public async Task <Response <UsuarioEscritorio> > Handle(CriarUsuarioInicialCommand request, CancellationToken cancellationToken)
        {
            var result = Response <UsuarioEscritorio> .WithResult(null);

            var existsUserWithSameUsername = await _context.UsuariosEscritorio.AnyAsync(u => u.Username == request.Usuario.Email);

            if (existsUserWithSameUsername)
            {
                result.AddError("Já existe um usuário com o mesmo e-mail, logue-se ou utilize outro e-mail");
                return(result);
            }

            var resultadoCriacaoEscritorio = await CriarEscritorio(request.CriarEscritorioCommand());

            if (resultadoCriacaoEscritorio.IsFailure)
            {
                result.AddErrors(resultadoCriacaoEscritorio.Errors);
            }

            if (result.IsFailure)
            {
                return(result);
            }

            CredenciaisAdvogado credenciais = new CredenciaisAdvogado();
            Oab oabSaida = new Oab();

            if (request.Usuario.NumeroOAB != null && request.Usuario.Estado != 0)
            {
                credenciais = new CredenciaisAdvogado(
                    request.Usuario.NumeroOAB,
                    EstadoBrasileiro.ObterPorCodigo(request.Usuario.Estado),
                    null
                    );
            }

            UsuarioEscritorio user = new UsuarioEscritorio(
                resultadoCriacaoEscritorio.Result,
                request.Usuario.Email,
                _hashService.Hash(request.Usuario.Senha),
                new InformacoesPessoais(request.Usuario.Nome, request.Usuario.Sobrenome),
                new List <Permissao>()
            {
                new Permissao("EhAdministrador", "true")
            },
                credenciais
                );

            if (request.Usuario.NumeroOAB != null && request.Usuario.Estado != 0)
            {
                oabSaida = new Oab(user.Codigo, request.Usuario.NumeroOAB, EstadoBrasileiro.ObterPorCodigo(request.Usuario.Estado).UF, $"{request.Usuario.Nome} {request.Usuario.Sobrenome}");
                // CriarUsuarioInicialCommandMessage.Publish(oabSaida);
                await _oabContext.Oab.AddAsync(oabSaida);

                await _oabContext.SaveChangesAsync();
            }

            await _context.UsuariosEscritorio.AddAsync(user);

            await _context.SaveChangesAsync();

            return(Response <UsuarioEscritorio> .WithResult(user));
        }
Exemple #6
0
        public async Task <Response <UsuarioEscritorio> > Handle(CriarUsuarioNovoCommand request, CancellationToken cancellationToken)
        {
            var result = Response <UsuarioEscritorio> .WithResult(null);

            var existsUserWithSameUsername = await _context.UsuariosEscritorio.AnyAsync(u => u.Username == request.Usuario.Email);

            var escritorioAtual = await _context.Escritorios.FirstOrDefaultAsync(o => o.Informacoes.NomeFantasia == request.Escritorio.NomeFantasia);

            string ehAdministrador = "false";

            if (request.Usuario.ehAdministrador != null && !request.Usuario.ehAdministrador.Equals(""))
            {
                ehAdministrador = request.Usuario.ehAdministrador;
            }

            if (escritorioAtual == null)
            {
                result.AddError("Escritorio não encontrado.");
                return(result);
            }

            if (existsUserWithSameUsername)
            {
                result.AddError("Já existe um usuário com o mesmo e-mail, logue-se ou utilize outro e-mail");
                return(result);
            }

            CredenciaisAdvogado credenciais = new CredenciaisAdvogado();
            Oab oabSaida = new Oab();

            if (request.Usuario.NumeroOAB != null && request.Usuario.Estado != 0)
            {
                credenciais = new CredenciaisAdvogado(
                    request.Usuario.NumeroOAB,
                    EstadoBrasileiro.ObterPorCodigo(request.Usuario.Estado),
                    null
                    );
            }

            UsuarioEscritorio user = new UsuarioEscritorio(
                escritorioAtual.Codigo,
                request.Usuario.Email,
                _hashService.Hash(request.Usuario.Senha),
                new InformacoesPessoais(request.Usuario.Nome, request.Usuario.Sobrenome),
                new List <Permissao>()
            {
                new Permissao("EhAdministrador", ehAdministrador)
            },
                credenciais
                );

            if (request.Usuario.NumeroOAB != null && request.Usuario.Estado != 0)
            {
                oabSaida = new Oab(user.Codigo, request.Usuario.NumeroOAB, EstadoBrasileiro.ObterPorCodigo(request.Usuario.Estado).UF, $"{request.Usuario.Nome} {request.Usuario.Sobrenome}");
                //CriarUsuarioInicialCommandMessage.Publish(oabSaida);
                await _oabContext.Oab.AddAsync(oabSaida);

                await _oabContext.SaveChangesAsync();
            }
            ;

            await _context.UsuariosEscritorio.AddAsync(user);

            await _context.SaveChangesAsync();

            return(Response <UsuarioEscritorio> .WithResult(user));
        }