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;
 }
        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;
        }
        public ActionResult NovoUsuario()
        {
            var perfils = _perfilRepositorio.ObterTodos().Select(t => new { t.Codigo, t.Nome, CodigoDoGrupo = t.Grupo.Codigo });
            var grupoIntegra = _grupoRepositorio.ObterGrupoIntegra();
            var grupos = _grupoRepositorio.ObterTodos().Select(t => new { t.Codigo, t.Descricao });
            var tipos = _tipoDeCrmRepositorio.ObterTodos().ToList();
            var departamentos = _departamentoRepositorio.ObterTodos().ToList();
            var cargos = _cargoRepositorio.ObterTodos().ToList();
            var programas = _programaRepositorio.ObterTodos().ToList();
            var novoUsuario = new AdicionarUsuarioViewModel
                                  {
                                      Perfils = perfils,
                                      Grupos = grupos,
                                      TiposDeCrm = tipos,
                                      Cargos = cargos,
                                      Departamentos = departamentos,
                                      GrupoIntegra = grupoIntegra,
                                      Programas = programas
                                  };

            return View(novoUsuario);
        }
 public JsonResult NovoUsuario(AdicionarUsuarioViewModel novoUsuarioModel)
 {
     return Json(novoUsuarioModel.Codigo == 0 ? AdicionarPessoa(novoUsuarioModel) : EditarPessoa(novoUsuarioModel));
 }
        public ActionResult Editar(int id)
        {
            var perfils =
                _perfilRepositorio.ObterTodos().Select(t => new { t.Codigo, t.Nome, CodigoDoGrupo = t.Grupo.Codigo });
            var grupoIntegra = _grupoRepositorio.ObterGrupoIntegra();
            var grupos = _grupoRepositorio.ObterTodos().Select(t => new { t.Codigo, t.Descricao });
            var tipos = _tipoDeCrmRepositorio.ObterTodos().ToList();
            var departamentos = _departamentoRepositorio.ObterTodos().ToList();
            var cargos = _cargoRepositorio.ObterTodos().ToList();
            var programas = _programaRepositorio.ObterTodos().ToList();
            var novoUsuario = new AdicionarUsuarioViewModel
                                  {
                                      Perfils = perfils,
                                      Grupos = grupos,
                                      TiposDeCrm = tipos,
                                      Cargos = cargos,
                                      Departamentos = departamentos,
                                      GrupoIntegra = grupoIntegra,
                                      Programas = programas
                                  };

            var cliente = _clienteRepositorio.ObterPor(id);
            if (cliente == null)
            {
                var funcionario = _funcionarioRepositorio.ObterPor(id);
                novoUsuario.Codigo = funcionario.Codigo;
                novoUsuario.PerfilSelecionado = funcionario.Usuario.Perfil.Codigo;
                novoUsuario.NomeDeUsuario = funcionario.Usuario.NomeDeUsuario;
                novoUsuario.GrupoSelecionado = funcionario.Usuario.Perfil.Grupo.Codigo;
                novoUsuario.CodigoDoCargo = funcionario.Cargo != null ? funcionario.Cargo.Codigo : 1;
                novoUsuario.CodigoDoDepartamento = funcionario.Departamento != null ? funcionario.Departamento.Codigo : 1;
                novoUsuario.Nome = funcionario.Nome;
                novoUsuario.Telefone = funcionario.Telefone;
                novoUsuario.Status = funcionario.Inativo;
                novoUsuario.CodigosDosProgramas = funcionario.ProgramasPermitidos.Select(it => it.Codigo).ToList();
                novoUsuario.DescricaoDoCargo = funcionario.Descricao;
            }
            else
            {
                novoUsuario.Codigo = cliente.Codigo;
                novoUsuario.PerfilSelecionado = cliente.Usuario.Perfil.Codigo;
                novoUsuario.NomeDeUsuario = cliente.Usuario.NomeDeUsuario;
                novoUsuario.GrupoSelecionado = cliente.Usuario.Perfil.Grupo.Codigo;
                novoUsuario.Nome = cliente.Nome;
                if (cliente.Crm != null)
                {
                    novoUsuario.NumeroDoCrm = cliente.Crm.NumeroDoCRM;
                    novoUsuario.TipoDeCrmSelecionado = cliente.Crm.Tipo.Codigo;
                    novoUsuario.NomeDoCrm = cliente.Crm.NomeDoCRM;
                }
                novoUsuario.Telefone = cliente.Telefone;
                novoUsuario.Status = cliente.Inativo;
                novoUsuario.CodigosDosProgramas = cliente.ProgramasPermitidos.Select(it => it.Codigo).ToList();

            }

            return View("NovoUsuario", novoUsuario);
        }