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