public async Task <Response <Escritorio> > Handle(ModificarEscritorioCommand request, CancellationToken cancellationToken) { var result = Response <Escritorio> .WithResult(null); var escritorio = await _context.Escritorios.Include(b => b.Endereco) .FirstOrDefaultAsync(u => u.Informacoes.CNPJ == request.CNPJ); var enderecoCompleto = $"{request.Endereco.Rua}, {request.Endereco.Numero} - {request.Endereco.Cidade} - {request.Endereco.Estado}"; var(lat, lon) = await _geocodingService.ObterCoordenadas(enderecoCompleto); if (escritorio == null) { result.AddError("Usuario não encontrado para modificar"); return(result); } escritorio.AtualizarInformacoesEscritorio(new InformacoesDoEscritorio(request.NomeFantasia, request.RazaoSocial, request.CNPJ)); escritorio.Endereco.AtualizarDadosEndereco( request.Endereco.CEP, request.Endereco.Rua, request.Endereco.Numero, request.Endereco.Complemento, request.Endereco.Bairro, request.Endereco.Cidade, request.Endereco.Estado, lat, lon ); _context.Escritorios.Update(escritorio); await _context.SaveChangesAsync(); return(Response <Escritorio> .WithResult(escritorio)); }
public async Task <Response <EspecialidadesEscritorio> > Handle(CriarEspecialidadeEscritorioCommand request, CancellationToken cancellationToken) { var result = Response <EspecialidadesEscritorio> .WithResult(null); var escritorioAtual = await _context.Escritorios.FirstOrDefaultAsync(o => o.Codigo == request.CodigoEscritorio); var especialidade = await _context.Especialidades.FirstOrDefaultAsync(e => e.Codigo == request.CodigoEspecialidade); var existsAlredy = await _context.EspecialidadesEscritorio.AnyAsync(u => u.CodigoEscritorio == escritorioAtual.Codigo && u.CodigoEspecialidade == especialidade.Codigo); if (existsAlredy) { result.AddError("Já existe uma especialidade com o mesmo nome, utilize outro nome."); return(result); } var especialidadesEscritorio = new EspecialidadesEscritorio(especialidade.Codigo, escritorioAtual.Codigo ); await _context.EspecialidadesEscritorio.AddAsync(especialidadesEscritorio); await _context.SaveChangesAsync(); return(Response <EspecialidadesEscritorio> .WithResult(especialidadesEscritorio)); }
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 async Task <Response <UsuarioEscritorio> > Handle(RemoverUsuarioCommand request, CancellationToken cancellationToken) { var result = Response <UsuarioEscritorio> .WithResult(null); var user = await _context.UsuariosEscritorio.FirstOrDefaultAsync(u => u.Codigo == request.CodigoUsuario); if (user == null) { result.AddError("Usuario não encontrado para deleção"); return(result); } _context.UsuariosEscritorio.Remove(user); await _context.SaveChangesAsync(); return(Response <UsuarioEscritorio> .WithResult(user)); }
public async Task <Response <EspecialidadesEscritorio> > Handle(RemoverEspecialidadeEscritorioCommand request, CancellationToken cancellationToken) { var result = Response <EspecialidadesEscritorio> .WithResult(null); var existsAlredy = await _context.EspecialidadesEscritorio.AnyAsync(u => u.Codigo == request.CodigoEspecialidadeEscritorio); if (!existsAlredy) { result.AddError("Não existe uma especialidade com este codigo, utilize outro codigo."); return(result); } var especialidade = await _context.EspecialidadesEscritorio.FirstOrDefaultAsync(u => u.Codigo == request.CodigoEspecialidadeEscritorio); _context.EspecialidadesEscritorio.Remove(especialidade); await _context.SaveChangesAsync(); return(Response <EspecialidadesEscritorio> .WithResult(especialidade)); }
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 <Especialidade> > Handle(ModificarEspecialidadeCommand request, CancellationToken cancellationToken) { var result = Response <Especialidade> .WithResult(null); var especialidade = await _context.Especialidades.FirstOrDefaultAsync(u => u.Codigo == request.CodigoEspecialidade); if (especialidade == null) { result.AddError("Não existe uma especialidade com este mesmo nome, utilize outro nome."); return(result); } especialidade.Nome = request.Especialidade.Nome; especialidade.Descricao = request.Especialidade.Descricao; _context.Especialidades.Update(especialidade); await _context.SaveChangesAsync(); return(Response <Especialidade> .WithResult(especialidade)); }
public async Task <Response <Especialidade> > Handle(CriarEspecialidadeCommand request, CancellationToken cancellationToken) { var result = Response <Especialidade> .WithResult(null); var existsAlredy = await _context.Especialidades.AnyAsync(u => u.Nome == request.Especialidade.Nome); if (existsAlredy) { result.AddError("Já existe uma especialidade com o mesmo nome, utilize outro nome."); return(result); } var especialidade = new Especialidade(request.Especialidade.Nome, request.Especialidade.Descricao); await _context.Especialidades.AddAsync(especialidade); await _context.SaveChangesAsync(); return(Response <Especialidade> .WithResult(especialidade)); }
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)); }