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)); }
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)); }
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)); }