protected List <EtapaResposta> ObterSolicitacoesUsuario(int idUsuario) { var usuarioSelecionado = (new ManterUsuario()).ObterPorID(idUsuario); IQueryable <HierarquiaNucleoUsuario> listaHierarquiaNucleoUsuario = new ManterHierarquiaNucleoUsuario().ObterUsuariosNucleo(usuarioSelecionado.ID); List <int> idsEtapas = new List <int>(); foreach (HierarquiaNucleoUsuario hierarquiaNucleoUsuario in listaHierarquiaNucleoUsuario) { var etapasPermissaoNucleo = new ManterEtapaPermissaoNucleo().ObterPorHierarquiaNucleoUsario(hierarquiaNucleoUsuario.ID); if (etapasPermissaoNucleo.Any()) { foreach (EtapaPermissaoNucleo etapaPermissaoNucleo in etapasPermissaoNucleo) { idsEtapas.Add(etapaPermissaoNucleo.Etapa.ID); } } } if (idsEtapas.Count > 0) { List <EtapaResposta> demandas_usuario = new ManterEtapaResposta().ObterTodos().Where(x => idsEtapas.Contains(x.Etapa.ID) && x.Status == (int)enumStatusEtapaResposta.Aguardando).ToList(); return(demandas_usuario); } return(null); }
protected void salvarUsuarioNucleo(Usuario usuarioSelecionado, Dominio.Classes.HierarquiaNucleo hierarquiaNucleo, Uf UfSelecionada, bool isGestor) { try { var manterHierarquiaNucleoUsuario = new ManterHierarquiaNucleoUsuario(); manterHierarquiaNucleoUsuario.Salvar(usuarioSelecionado, hierarquiaNucleo, UfSelecionada, isGestor); //ADICIONA USUARIO DO NUCLEO AS PERMISSOES DAS ETAPAS QUE POSSUI O NUCLEO var hierarquiaNucleoUsuario = manterHierarquiaNucleoUsuario.ObterTodosIQueryable() .FirstOrDefault(x => x.Usuario.ID == usuarioSelecionado.ID && x.HierarquiaNucleo.ID == hierarquiaNucleo.ID); var etapasHierarquia = new ManterEtapaPermissaoNucleo() .ObterTodosIQueryable() .Where(x => x.HierarquiaNucleoUsuario != null && x.HierarquiaNucleoUsuario.HierarquiaNucleo != null && x.HierarquiaNucleoUsuario.HierarquiaNucleo.ID == hierarquiaNucleo.ID) .Select(x => x.Etapa) .Distinct().ToList(); if (hierarquiaNucleoUsuario != null && etapasHierarquia.Any()) { var manterEtapaPermissaoNucleo = new ManterEtapaPermissaoNucleo(); foreach (var etapa in etapasHierarquia) { var permissao = new EtapaPermissaoNucleo() { Etapa = etapa, HierarquiaNucleoUsuario = hierarquiaNucleoUsuario }; manterEtapaPermissaoNucleo.Salvar(permissao); } } WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Usuário incluído com sucesso."); OcultarModal_Click(null, null); OcultarModalUsuarioConfirmacao_Click(null, null); OcultarModaConfirmacaoMover_Click(null, null); if (isGestor) { List <int> idsUsuariosNucleo = hierarquiaNucleo.HierarquiaNucleoUsuarios.Select(x => x.ID).ToList(); if (idsUsuariosNucleo.Count > 0) { List <int> idsEtapasHierarquiaNucleo = new ManterEtapaPermissaoNucleo().ObterPorHierarquiaNucleoUsarioIn(idsUsuariosNucleo).Select(x => x.Etapa.ID).Distinct().ToList(); var etapasResposta = new ManterEtapaResposta().ObterTodos().Where(x => idsEtapasHierarquiaNucleo.Contains(x.Etapa.ID)).ToList(); var etapasRespostaAguaradando = etapasResposta.Where(x => x.ProcessoResposta.Status == (int)enumStatusEtapaResposta.Aguardando).Distinct().ToList(); var idsSolicitacoes = etapasRespostaAguaradando.Select(x => $"#{x.ProcessoResposta.ID}").ToList(); string msg; msg = String.Join(", ", idsSolicitacoes); msg = "A(s) solicitação(ões) " + msg + " passa(m) a ter como responsável por aprovação o(a) " + usuarioSelecionado.Nome; ExibirModalNovoResponsavel(msg); } } } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); } catch (Exception ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Erro ao incluir o usuário na Hierarquia de Núcleo."); } }
protected void btnMover_OnClick(object sender, EventArgs e) { try { var manterHierarquiaNucleoUsuario = new ManterHierarquiaNucleoUsuario(); var idHierarquiaNucleo = int.Parse(IdHierarquiaNucleoSelcionado.Value); var hierarquiaNucleo = new ManterHierarquiaNucleo().ObterPorId(idHierarquiaNucleo); var idUsuario = int.Parse(IdUsuarioSelecionado.Value); var usuarioSelecionado = new ManterUsuario().ObterPorID(idUsuario); var isGestor = int.Parse(IsGestorSelecionado.Value) == 1 ? true : false; IQueryable <HierarquiaNucleoUsuario> listaHierarquiaNucleoUsuario = manterHierarquiaNucleoUsuario.ObterUsuariosNucleo(usuarioSelecionado.ID); if (listaHierarquiaNucleoUsuario.Any()) { foreach (HierarquiaNucleoUsuario hierarquiaNucleoUsuario in listaHierarquiaNucleoUsuario) { var etapasPermissaoNucleo = new ManterEtapaPermissaoNucleo().ObterPorHierarquiaNucleoUsario(hierarquiaNucleoUsuario.ID); if (etapasPermissaoNucleo.Any()) { foreach (var etapaPermissaoNucleo in etapasPermissaoNucleo) { new ManterEtapaRespostaPermissao().ExcluirTodosFkEtapaPermissaoNucleo(etapaPermissaoNucleo.ID); } } manterHierarquiaNucleoUsuario.ExcluirTodosFkHieraquiaNucleoUsuario(hierarquiaNucleoUsuario.ID); manterHierarquiaNucleoUsuario.Excluir(hierarquiaNucleoUsuario.ID); } } salvarUsuarioNucleo(usuarioSelecionado, hierarquiaNucleo, UfSelecionada, isGestor); var usuarioHierarquiaNucleoInserido = manterHierarquiaNucleoUsuario.ObterPorUsuarioEHieraquiaNucleo(usuarioSelecionado.ID, hierarquiaNucleo.ID); List <int> idsUsuariosNucleo = hierarquiaNucleo.HierarquiaNucleoUsuarios.Select(x => x.ID).ToList(); if (idsUsuariosNucleo.Any()) { var etapasHierarquiaNucleo = new ManterEtapaPermissaoNucleo().ObterPorHierarquiaNucleoUsarioIn(idsUsuariosNucleo).Select(x => x.Etapa).Distinct().ToList(); if (etapasHierarquiaNucleo.Any()) { foreach (var etapa in etapasHierarquiaNucleo) { var etapaPermissaoNucleoAdd = new EtapaPermissaoNucleo() { Etapa = etapa, HierarquiaNucleoUsuario = usuarioHierarquiaNucleoInserido }; new ManterEtapaPermissaoNucleo().Salvar(etapaPermissaoNucleoAdd); } } } } catch (Exception) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Erro ao mover o usuário de Hierarquia de Núcleo."); } }
protected void btnSalvar_OnClick(object sender, EventArgs e) { var usuarioSelecionado = LupaUsuario.SelectedUser; if (usuarioSelecionado == null) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Usuário é obrigatório"); return; } var idHierarquiaNucleo = int.Parse(hdnIdHierarquiaNucleo.Value); var hierarquiaNucleo = (new ManterHierarquiaNucleo()).ObterPorId(idHierarquiaNucleo); var isGestor = int.Parse(hdnIsGestor.Value) == 1 ? true : false; IQueryable <HierarquiaNucleoUsuario> hierarquiaNucleoUsuarioList = new ManterHierarquiaNucleoUsuario().ObterUsuariosNucleo(usuarioSelecionado.ID); if (hierarquiaNucleoUsuarioList.Count() > 0) { var usuarioPertenceMesmoNucleo = hierarquiaNucleoUsuarioList.Where(x => x.HierarquiaNucleo.ID == idHierarquiaNucleo); IdUsuarioSelecionado.Value = usuarioSelecionado.ID.ToString(); IdHierarquiaNucleoSelcionado.Value = hierarquiaNucleo.ID.ToString(); IsGestorSelecionado.Value = isGestor ? "1" : "0"; if (isGestor) { btnDuplicar.Visible = true; TxtMgsConfirmacao.Text = "Colaborador selecionado pertence a outro Núcleo, deseja Duplicar ou Mover o colaborador?"; if (usuarioPertenceMesmoNucleo.Any()) { TxtMgsConfirmacao.Text = "Colaborador selecionado pertence a esse Núcleo, deseja Mover o colaborador?"; btnDuplicar.Visible = false; } } else { var isFuncionarioNucleo = hierarquiaNucleoUsuarioList.Where(x => x.HierarquiaNucleo.ID == hierarquiaNucleo.ID && x.IsGestor == false).ToList(); if (isFuncionarioNucleo.Count > 0) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "O Funcionário selecionado já é funcionário do desse núcleo"); return; } var nomesNucleosPertencentes = hierarquiaNucleoUsuarioList.Select(x => (x.IsGestor ? "Gestor" : "Funcionário") + " de " + x.HierarquiaNucleo.Nome); var msgBase = usuarioSelecionado.Nome + " já faz parte do(s) seguinte(s) núcleo(s) : <br>"; string msg = String.Join("<br>", nomesNucleosPertencentes); TxtMgsConfirmacao.Text = msgBase + msg; btnSalvarFuncionario.Visible = true; btnDuplicar.Visible = false; btnMover.Visible = false; } OcultarModal_Click(null, null); ExibirModalUsuarioConfirmacao(); } else { salvarUsuarioNucleo(usuarioSelecionado, hierarquiaNucleo, UfSelecionada, isGestor); } }