Exemple #1
0
    protected void _btnSalvarGrupo_Click(object sender, EventArgs e)
    {
        if ((_lstUAs.Items.Count == 0) && (divUA.Visible))
        {
            _lblMessageInsert.Text = UtilBO.GetErroMessage("Nenhum grupo foi adicionado.", UtilBO.TipoMensagem.Alerta);
        }
        else
        {
            try
            {
                //Carrega lista de entidade e Unidade administrativas
                List <SYS_UsuarioBO.TmpEntidadeUA> lt = new List <SYS_UsuarioBO.TmpEntidadeUA>();
                Guid gru_id       = new Guid(_ddlGrupos.SelectedValue);
                int  usg_situacao = (_ckbGrupo_Bloqueado.Checked) ? 2 : 1;

                if (_ddlGrupos.SelectedIndex.Equals(0))
                {
                    throw new ArgumentException("Sistema - grupo é obrigatório.");
                }
                else
                {
                    if (divUA.Visible)
                    {
                        foreach (ListItem item in _lstUAs.Items)
                        {
                            Guid ent_id;
                            Guid uad_id = Guid.Empty;

                            //Checa se é Unidade Administrativa ou entidade
                            if (divUA.Visible)
                            {
                                //Se unidade administrativa separa os ids
                                string[] ids = item.Value.Split(';');
                                ent_id = new Guid(ids[0]);
                                uad_id = new Guid(ids[1]);
                            }
                            else
                            {
                                ent_id = new Guid(item.Value);
                            }

                            //Adciono a lista de entidade e unidade
                            SYS_UsuarioBO.AddTmpEntidadeUA(gru_id, ent_id, uad_id, lt);

                            //List<SYS_UsuarioBO.TmpEntidadeUA> ltUA = new List<SYS_UsuarioBO.TmpEntidadeUA>();

                            //foreach (KeyValuePair<Guid, List<SYS_UsuarioBO.TmpEntidadeUA>> kv in _VS_EntidadeUA)
                            //{
                            //    foreach (SYS_UsuarioBO.TmpEntidadeUA aux in kv.Value.ToList())
                            //        ltUA.Add(aux);
                            //}

                            if (_VS_usu_id == Guid.Empty && _VS_EntidadeUA.Count > 0)
                            {
                                UCComboEntidadeUsuario._Combo.Enabled = false;
                                _updUsuario.Update();
                            }
                        }

                        //Checa se a lista já existe no viewstate para o grupo associado.
                        //Caso já exista uma lista de entidades ou ua, substitui pela nova lista.
                        //Caso contrário adiciona a nova lista
                        if (_VS_EntidadeUA.ContainsKey(new Guid(_ddlGrupos.SelectedValue)))
                        {
                            _VS_EntidadeUA[gru_id] = lt;
                        }
                        else
                        {
                            _VS_EntidadeUA.Add(gru_id, lt);
                        }
                    }

                    //Adciona o grupo caso ainda não exista
                    SYS_UsuarioBO.AddTmpGrupo(gru_id, _VS_Grupos, usg_situacao);

                    //Atualiza o grid
                    _LoadGridGrupos();

                    //Registra script para fechar a janela
                    //ScriptManager.RegisterClientScriptBlock(this._btnSalvarGrupo, this._btnSalvarGrupo.GetType(), "SalvarGrupo", "$('#divAddGrupos').dialog('close');", true);
                    ScriptManager.RegisterClientScriptBlock(this, GetType(), "SalvarGrupo", "$('#divAddGrupos').dialog('close');", true);
                }
            }
            catch (ArgumentException err)
            {
                _lblMessageInsert.Text = UtilBO.GetErroMessage(err.Message, UtilBO.TipoMensagem.Alerta);
            }
            catch
            {
                _lblMessageInsert.Text = UtilBO.GetErroMessage("Erro ao tentar incluir o grupo.", UtilBO.TipoMensagem.Erro);
            }
        }
    }
Exemple #2
0
        /// <summary>
        /// Método utilizado via Web API para inclusão de novos grupos de usuário
        /// </summary>
        /// <param name="entityUsuarioAPI">Usuário da API usado para gravar log de ação</param>
        public static void AssociateUserGroup(Guid usu_id, AssociarUsuarioGrupoEntradaDTO data, CFG_UsuarioAPI entityUsuarioAPI)
        {
            #region [ Validação de campos obrigatórios ]

            if (data == null || data.usergroup == null || data.usergroup.Count(p => p.gru_id != Guid.Empty) == 0)
            {
                throw new ValidationException("Obrigatório no mínimo um Id de grupo do usuário.");
            }

            #endregion

            SYS_Usuario entity = SYS_UsuarioBO.GetEntity(new SYS_Usuario {
                usu_id = usu_id
            });
            entity.usu_senha         = string.Empty;
            entity.usu_dataAlteracao = DateTime.Now;

            if (!entity.IsNew)
            {
                // Validação de usuário padrão do sistema
                if (entity.usu_situacao == (byte)SYS_UsuarioBO.eSituacao.Padrao_Sistema)
                {
                    throw new ValidationException("Não é possível alterar dados do usuário padrão do sistema.");
                }

                SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos>             grupos   = new SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos>();
                SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> > grupoUas = new SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> >();
                SYS_UsuarioBO.GetGruposUsuario(entity.usu_id, grupos, grupoUas);

                foreach (UsuarioGrupoDTO grupo in data.usergroup)
                {
                    // Adiciona o grupo
                    if (grupo.gru_id != Guid.Empty)
                    {
                        SYS_UsuarioBO.AddTmpGrupo(grupo.gru_id, grupos, 1);

                        // Adiciona a unidade administrativa ao grupo, caso necessário
                        if (grupo.uad_id != Guid.Empty)
                        {
                            List <SYS_UsuarioBO.TmpEntidadeUA> ltEntidadeUA = grupoUas.ContainsKey(grupo.gru_id) ?
                                                                              grupoUas[grupo.gru_id] : new List <SYS_UsuarioBO.TmpEntidadeUA>();

                            SYS_UsuarioBO.AddTmpEntidadeUA(grupo.gru_id, entity.ent_id, grupo.uad_id, ltEntidadeUA);
                        }
                    }
                }

                SYS_UsuarioBO.Save(entity, grupos, grupoUas, false, string.Empty, string.Empty, string.Empty, string.Empty, null);
            }
            else
            {
                throw new ValidationException("Usuário não existe.");
            }

            #region [ Log de ação]

            LOG_UsuarioAPIBO.Save
            (
                new LOG_UsuarioAPI
            {
                usu_id = entity.usu_id
                ,
                uap_id = entityUsuarioAPI.uap_id
                ,
                lua_dataHora = DateTime.Now
                ,
                lua_acao = (byte)LOG_UsuarioAPIBO.eAcao.AssociacaoUsuarioGrupo
            }
            );

            #endregion
        }
    protected void _btnSalvarGrupo_Click(object sender, EventArgs e)
    {
        if ((_lstUAs.Items.Count == 0) && (divUA.Visible))
        {
            _lblMessageUsuario.Text = UtilBO.GetErroMessage("Nenhuma unidade administrativa foi adicionada.", UtilBO.TipoMensagem.Alerta);
        }
        else if (_VS_IsNew && _VS_Grupos.ContainsKey(_VS_gru_id))
        {
            _lblMessageUsuario.Text = UtilBO.GetErroMessage("O usuário selecionado já está cadastrado nesse grupo.", UtilBO.TipoMensagem.Alerta);
        }
        else
        {
            try
            {
                //Carrega lista de entidade e Unidade administrativas
                List <SYS_UsuarioBO.TmpEntidadeUA> lt = new List <SYS_UsuarioBO.TmpEntidadeUA>();
                int usg_situacao = (_ckbGrupo_Bloqueado.Checked) ? 2 : 1;

                if (divUA.Visible)
                {
                    foreach (ListItem item in _lstUAs.Items)
                    {
                        Guid ent_id;
                        Guid uad_id = Guid.Empty;

                        //Checa se é Unidade Administrativa ou entidade
                        if (divUA.Visible)
                        {
                            //Se unidade administrativa separa os ids
                            string[] ids = item.Value.Split(';');
                            ent_id = new Guid(ids[0]);
                            uad_id = new Guid(ids[1]);
                        }
                        else
                        {
                            ent_id = new Guid(item.Value);
                        }

                        //Adciono a lista de entidade e unidade
                        SYS_UsuarioBO.AddTmpEntidadeUA(_VS_gru_id, ent_id, uad_id, lt);
                    }

                    //Checa se a lista já existe no viewstate para o grupo associado.
                    //Caso já exista uma lista de entidades ou ua, substitui pela nova lista.
                    //Caso contrário adiciona a nova lista
                    if (_VS_EntidadeUA.ContainsKey(_VS_gru_id))
                    {
                        _VS_EntidadeUA[_VS_gru_id] = lt;
                    }
                    else
                    {
                        _VS_EntidadeUA.Add(_VS_gru_id, lt);
                    }
                }

                //Adciona o grupo caso ainda não exista
                SYS_UsuarioBO.AddTmpGrupo(_VS_gru_id, _VS_Grupos, usg_situacao);

                SYS_Usuario usu = new SYS_Usuario {
                    usu_id = new Guid(_txtUsu_id.Value)
                };
                SYS_UsuarioBO.GetEntity(usu);

                usu.usu_senha = string.Empty;

                if (SYS_UsuarioBO.Save(usu, _VS_Grupos, _VS_EntidadeUA, false, string.Empty, string.Empty, string.Empty, string.Empty, null))
                {
                    if (_VS_IsNew)
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Insert, "gru_id: " + _VS_gru_id + "; usu_id: " + _txtUsu_id.Value);
                        _lblMessage.Text = UtilBO.GetErroMessage(String.Format("Usuário associado com sucesso."), UtilBO.TipoMensagem.Sucesso);
                    }
                    else
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Update, "gru_id: " + _VS_gru_id + "; usu_id: " + _txtUsu_id.Value);
                        _lblMessage.Text = UtilBO.GetErroMessage(String.Format("Associação do usuário alterada com sucesso."), UtilBO.TipoMensagem.Sucesso);
                    }
                }
                else
                {
                    _lblMessageUsuario.Text = UtilBO.GetErroMessage("Erro ao tentar salvar a associação do usuário.", UtilBO.TipoMensagem.Erro);
                }

                _LoadGridUsuarios();

                //Registra script para fechar a janela
                ScriptManager.RegisterClientScriptBlock(this, GetType(), "SalvarUsuario", "$('#divUsuario').dialog('close');", true);
            }
            catch (ArgumentException ex)
            {
                _lblMessageUsuario.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                _lblMessageUsuario.Text = UtilBO.GetErroMessage("Erro ao tentar salvar a associação do usuário.", UtilBO.TipoMensagem.Erro);
            }
            finally
            {
                _updUsuario.Update();
                _updUsuarioGrid.Update();
            }
        }
    }