Exemple #1
0
        public AdicionarUmaPessoaResposta AdicionarUmaPessoa(AdicionarUmaPessoaRequisicao requisicao, int codPrograma)
        {
            var resposta = new AdicionarUmaPessoaResposta();

            try
            {
                var departamento = _departamentoRepositorio.ObterPor(requisicao.CodigoDoDepartamento);
                var perfil       = _perfilRepositorio.ObterPor(requisicao.CodigoDoPerfil);
                var senha        = GeradorDeSenhas.Gerar(GeradorDeSenhas.RandomType.Alphanumeric, 8);


                var novoUsuario           = new Usuario(requisicao.NomeDeUsuario, senha, perfil);
                var existeEmailCadastrado = _pessoaRepositorio.ObterPeloNomeDeUsuario(requisicao.NomeDeUsuario);
                if (existeEmailCadastrado != null)
                {
                    novoUsuario.RegraQuebrada(RegrasDeNegocioPessoa.EmailJaExiste);
                }
                novoUsuario.AlterarSenha(Crypto.HashPassword(senha));

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

                //perfil.Grupo.Codigo

                if (perfil.Grupo.Codigo == 1)
                {
                    departamento = _departamentoRepositorio.ObterPor(1);
                    var cargo = _cargoRepositorio.ObterPor(1);
                    _funcionarioServico.AdicionarUmNovoFuncionario(requisicao.Nome, requisicao.Telefone,
                                                                   novoUsuario, departamento, cargo, programas, requisicao.Descricao);
                }
                else
                {
                    var cliente = _clienteServico.AdicionarUmNovoCliente(requisicao.Nome, requisicao.Telefone,
                                                                         requisicao.Inativo, novoUsuario, programas);

                    var tipoDoCrm = _tipoDeCrmRepositorio.ObterPor(requisicao.CodigoDoTipoDeCrm);
                    if (tipoDoCrm != null)
                    {
                        var crm = new CRM(requisicao.NumeroDoCrm, tipoDoCrm, requisicao.NomeDoCrm);
                        cliente.InformarCrm(crm);
                    }
                }
                foreach (var programa in programas)
                {
                    EnviarEmailParaNovoUsarioDoPrograma(programa.Codigo, novoUsuario, senha);
                    break;
                }

                _unitOfWork.Commit();
                resposta.Sucesso = true;
            }
            catch (RegraException regraDeNegocio)
            {
                resposta.Erros = regraDeNegocio.Erros.ToList();
            }

            return(resposta);
        }
Exemple #2
0
        private AdicionarUmaPessoaResposta AdicionarPessoa(AdicionarUsuarioViewModel novoUsuarioModel)
        {
            var novoUsuarioRequisicao = new AdicionarUmaPessoaRequisicao
            {
                CodigoDoPerfil       = novoUsuarioModel.PerfilSelecionado,
                NomeDeUsuario        = novoUsuarioModel.NomeDeUsuario,
                CodigoDoGrupo        = novoUsuarioModel.GrupoSelecionado,
                CodigoDoTipoDeCrm    = novoUsuarioModel.TipoDeCrmSelecionado,
                NumeroDoCrm          = novoUsuarioModel.NumeroDoCrm,
                CodigoDoDepartamento = novoUsuarioModel.CodigoDoDepartamento,
                CodigoDoCargo        = novoUsuarioModel.CodigoDoCargo,
                Nome                = novoUsuarioModel.Nome,
                Telefone            = novoUsuarioModel.Telefone,
                Inativo             = novoUsuarioModel.Status,
                Descricao           = novoUsuarioModel.DescricaoDoCargo,
                CodigosDosProgramas = novoUsuarioModel.CodigosDosProgramas,
                NomeDoCrm           = novoUsuarioModel.NomeDoCrm
            };

            var resposta = _pessoaServicoDeAplicacao.AdicionarUmaPessoa(novoUsuarioRequisicao, Session.ProgramaAtivo().CodPrograma);

            return(resposta);
        }