Esempio n. 1
0
        private object EditarPessoa(AdicionarUsuarioViewModel viewModel)
        {
            var novoUsuarioRequisicao = new AlterarUmaPessoaRequisicao
            {
                Codigo               = viewModel.Codigo,
                CodigoDoPerfil       = viewModel.PerfilSelecionado,
                CodigoDoTipoDeCrm    = viewModel.TipoDeCrmSelecionado,
                NumeroDoCrm          = viewModel.NumeroDoCrm,
                CodigoDoDepartamento = viewModel.CodigoDoDepartamento,
                CodigoDoCargo        = viewModel.CodigoDoCargo,
                Nome                = viewModel.Nome,
                Telefone            = viewModel.Telefone,
                Inativo             = viewModel.Status,
                NomeDeUsuario       = viewModel.NomeDeUsuario,
                Descricao           = viewModel.DescricaoDoCargo,
                CodigosDosProgramas = viewModel.CodigosDosProgramas,
                NomeDoCrm           = viewModel.NomeDoCrm
            };
            var resposta = _pessoaServicoDeAplicacao.AlterarUmaPessoa(novoUsuarioRequisicao);

            return(resposta);
        }
Esempio n. 2
0
        public AlterarUmaPessoaResposta AlterarUmaPessoa(AlterarUmaPessoaRequisicao requisicao)
        {
            var resposta = new AlterarUmaPessoaResposta();

            try
            {
                var departamento = _departamentoRepositorio.ObterPor(requisicao.CodigoDoDepartamento);

                var perfil = _perfilRepositorio.ObterPor(requisicao.CodigoDoPerfil);


                var programas = requisicao.CodigosDosProgramas.Select(_programaRepositorio.ObterPor).ToList();

                if (perfil.Grupo.Codigo == 1)
                {
                    var cargo       = _cargoRepositorio.ObterPor(requisicao.CodigoDoCargo);
                    var funcionario = _funcionarioRepositorio.ObterPor(requisicao.Codigo);
                    funcionario.Usuario.NomeDeUsuario = requisicao.NomeDeUsuario;
                    funcionario.Cargo          = cargo ?? _cargoRepositorio.ObterPor(1);
                    funcionario.Usuario.Perfil = perfil;
                    funcionario.Departamento   = departamento ?? _departamentoRepositorio.ObterPor(1);
                    funcionario.ProgramasPermitidos.Clear();
                    funcionario.ProgramasPermitidos = programas;
                    funcionario.Nome      = requisicao.Nome;
                    funcionario.Telefone  = requisicao.Telefone;
                    funcionario.Descricao = requisicao.Descricao;
                    funcionario.Inativo   = requisicao.Inativo;
                }
                else
                {
                    var cliente = _clienteRepositorio.ObterPor(requisicao.Codigo);
                    cliente.Usuario.NomeDeUsuario = requisicao.NomeDeUsuario;
                    cliente.Nome     = requisicao.Nome;
                    cliente.Telefone = requisicao.Telefone;
                    cliente.ProgramasPermitidos.Clear();
                    cliente.ProgramasPermitidos = programas;
                    cliente.Usuario.Perfil      = perfil;
                    cliente.Inativo             = requisicao.Inativo;
                    if (cliente.Crm != null)
                    {
                        if (cliente.Crm.Tipo.Codigo != requisicao.CodigoDoTipoDeCrm)
                        {
                            var tipoDoCrm = _tipoDeCrmRepositorio.ObterPor(requisicao.CodigoDoTipoDeCrm);
                            var crm       = new CRM(requisicao.NumeroDoCrm, tipoDoCrm, requisicao.NomeDoCrm);
                            cliente.InformarCrm(crm);
                        }
                        else
                        {
                            cliente.Crm.NumeroDoCRM = requisicao.NumeroDoCrm;
                            cliente.Crm.NomeDoCRM   = requisicao.NomeDoCrm;
                        }
                    }
                    else
                    {
                        var tipoDoCrm = _tipoDeCrmRepositorio.ObterPor(requisicao.CodigoDoTipoDeCrm);
                        var crm       = new CRM(requisicao.NumeroDoCrm, tipoDoCrm, requisicao.NomeDoCrm);
                        cliente.InformarCrm(crm);
                    }
                }
                _unitOfWork.Commit();
                resposta.Sucesso = true;
            }
            catch (RegraException regraDeNegocio)
            {
                resposta.Erros = regraDeNegocio.Erros.ToList();
            }

            return(resposta);
        }