コード例 #1
0
        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));
        }
コード例 #2
0
        public void Configure(EntityTypeBuilder <UsuarioEscritorio> builder)
        {
            builder.ToTable("usuarios_escritorio");
            builder.HasKey(e => e.Codigo);

            builder.Property(e => e.Codigo).HasColumnName("codigo");
            builder.Property(e => e.Username).HasColumnName("username");
            builder.Property(e => e.Senha).HasColumnName("password");
            builder.Property(e => e.CodigoEscritorio).HasColumnName("codigo_escritorio");

            builder.OwnsOne(e => e.InformacoesPessoais, b =>
            {
                b.Property(e => e.PrimeiroNome).HasColumnName("nome");
                b.Property(e => e.UltimoNome).HasColumnName("sobrenome");
            });

            builder.Property(e => e.Permissoes)
            .HasColumnName("permissoes")
            .HasColumnType("jsonb")
            .HasConversion(
                v => JsonConvert.SerializeObject(v),
                v => JsonConvert.DeserializeObject <List <Permissao> >(v)
                );

            builder.OwnsOne(e => e.Credenciais, e =>
            {
                e.Property(c => c.NumeroOab).HasColumnName("numero_oab");
                e.Property(c => c.CaminhoFoto).HasColumnName("caminho_imagem");
                e.Property(c => c.Estado)
                .HasColumnName("codigo_uf")
                .HasConversion(
                    v => v.Codigo,
                    v => EstadoBrasileiro.ObterPorCodigo(v)
                    );
            });

            builder.Property(e => e.Apagado).HasColumnName("apagado");
            builder.HasQueryFilter(e => !e.Apagado);
        }
        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));
        }
コード例 #4
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));
        }
コード例 #5
0
 public CredenciaisAdvogado(string numeroOab, EstadoBrasileiro estado, string caminhoFoto)
 {
     NumeroOab   = numeroOab;
     Estado      = estado;
     CaminhoFoto = caminhoFoto;
 }
コード例 #6
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));
        }