コード例 #1
0
ファイル: Visualizar.aspx.cs プロジェクト: Mualumene/SGP
    /// <summary>
    /// Retorna a cidade pelo endereço da entidade do usuário logado.
    /// </summary>
    private Guid CarregarCidadeUsuarioLogado()
    {
        // Setar a cidade pelo endereço da Entidade do usuário logado.
        Guid ent_id = __SessionWEB.__UsuarioWEB.Usuario.ent_id;

        Guid ene_id = SYS_EntidadeEnderecoBO.Select_ene_idBy_ent_id(ent_id);

        SYS_EntidadeEndereco entEndereco = new SYS_EntidadeEndereco
        {
            ent_id = ent_id
            ,
            ene_id = ene_id
        };

        SYS_EntidadeEnderecoBO.GetEntity(entEndereco);

        // Recuperando entidade Endereço do usuário logado.
        END_Endereco endereco = new END_Endereco
        {
            end_id = entEndereco.end_id
        };

        END_EnderecoBO.GetEntity(endereco);

        return(endereco.cid_id);
    }
コード例 #2
0
        protected void LoadSession(SYS_Usuario entityUsuario)
        {
            __SessionWEB.__UsuarioWEB.Usuario = entityUsuario;

            System.Web.Configuration.PagesSection pagesSection = System.Configuration.ConfigurationManager.GetSection("system.web/pages") as System.Web.Configuration.PagesSection;
            if ((pagesSection != null))
            {
                __SessionWEB.TemaPadraoLogado = CFG_TemaPadraoBO.CarregarPorNome(pagesSection.Theme);
            }

            // Armazena o cid_id referente a entidade do usuário na Session
            Guid ene_id = SYS_EntidadeEnderecoBO.Select_ene_idBy_ent_id(__SessionWEB.__UsuarioWEB.Usuario.ent_id);
            SYS_EntidadeEndereco entityEntidadeEndereco = new SYS_EntidadeEndereco {
                ent_id = __SessionWEB.__UsuarioWEB.Usuario.ent_id, ene_id = ene_id
            };

            SYS_EntidadeEnderecoBO.GetEntity(entityEntidadeEndereco);

            END_Endereco entityEndereco = new END_Endereco {
                end_id = entityEntidadeEndereco.end_id
            };

            END_EnderecoBO.GetEntity(entityEndereco);
            __SessionWEB._cid_id = entityEndereco.cid_id;

            // Armazena o nome da pessoa ou o login do usuário na Session
            PES_Pessoa EntityPessoa = new PES_Pessoa {
                pes_id = __SessionWEB.__UsuarioWEB.Usuario.pes_id
            };

            PES_PessoaBO.GetEntity(EntityPessoa);
            __SessionWEB.UsuarioLogado = string.IsNullOrEmpty(EntityPessoa.pes_nome) ? __SessionWEB.__UsuarioWEB.Usuario.usu_login : EntityPessoa.pes_nome;
        }
コード例 #3
0
        private void LoadSession(SYS_Usuario entityUsuario)
        {
            __SessionWEB.__UsuarioWEB.Usuario     = entityUsuario;
            __SessionWEB.__UsuarioWEB.responsavel = RadioButtonList1.SelectedIndex == 1;
            if (__SessionWEB.__UsuarioWEB.responsavel)
            {
                SYS_Usuario entityUsuarioAluno = new SYS_Usuario
                {
                    ent_id = UCComboEntidade1.Valor
                    ,
                    usu_login = ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.PREFIXO_LOGIN_ALUNO_AREA_ALUNO, __SessionWEB.__UsuarioWEB.Usuario.ent_id) + txtLogin.Text
                };

                SYS_UsuarioBO.GetSelectBy_ent_id_usu_login(entityUsuarioAluno);
                __SessionWEB.__UsuarioWEB.pes_idAluno = entityUsuarioAluno.pes_id;
            }

            // Carrega grupos do usuário
            IList <SYS_Grupo> list = SYS_GrupoBO.GetSelectBySis_idAndUsu_id(__SessionWEB.__UsuarioWEB.Usuario.usu_id, ApplicationWEB.AreaAlunoSistemaID);

            // Verifica se foi carregado os grupos do usuário
            if (list.Count > 0)
            {
                __SessionWEB.__UsuarioWEB.Grupo = list[0];
            }
            else
            {
                throw new ValidationException("Não foi possível atender a solicitação, nenhum grupo de usuário encontrado.");
            }

            // Armazena o cid_id referente a entidade do usuário na Session
            Guid ene_id = SYS_EntidadeEnderecoBO.Select_ene_idBy_ent_id(__SessionWEB.__UsuarioWEB.Usuario.ent_id);
            SYS_EntidadeEndereco entityEntidadeEndereco = new SYS_EntidadeEndereco {
                ent_id = __SessionWEB.__UsuarioWEB.Usuario.ent_id, ene_id = ene_id
            };

            SYS_EntidadeEnderecoBO.GetEntity(entityEntidadeEndereco);

            END_Endereco entityEndereco = new END_Endereco {
                end_id = entityEntidadeEndereco.end_id
            };

            END_EnderecoBO.GetEntity(entityEndereco);
            __SessionWEB._cid_id = entityEndereco.cid_id;

            // Armazena o nome da pessoa ou o login do usuário na Session
            PES_Pessoa EntityPessoa = new PES_Pessoa {
                pes_id = __SessionWEB.__UsuarioWEB.Usuario.pes_id
            };

            PES_PessoaBO.GetEntity(EntityPessoa);
            __SessionWEB.UsuarioLogado = string.IsNullOrEmpty(EntityPessoa.pes_nome) ? __SessionWEB.__UsuarioWEB.Usuario.usu_login : EntityPessoa.pes_nome;
        }
コード例 #4
0
        public new static bool Delete
        (
            SYS_Entidade entity
            , CoreLibrary.Data.Common.TalkDBTransaction banco
        )
        {
            SYS_EntidadeDAO dal = new SYS_EntidadeDAO();

            if (banco == null)
            {
                dal._Banco.Open(IsolationLevel.ReadCommitted);
            }
            else
            {
                dal._Banco = banco;
            }

            try
            {
                //Verifica se a entidade pode ser deletada
                if (dal.Select_Integridade(entity.ent_id) > 0)
                {
                    throw new Exception("Não é possível excluir a entidade pois possui outros registros ligados a ela.");
                }

                //Decrementa um na integridade do endereço (se necessário)
                SYS_EntidadeEnderecoDAO entendDal = new SYS_EntidadeEnderecoDAO {
                    _Banco = dal._Banco
                };
                SYS_EntidadeEndereco entityEntidadeEndereco = new SYS_EntidadeEndereco {
                    ent_id = entity.ent_id, ene_id = entendDal.SelectBy_ent_id_top_one(entity.ent_id)
                };

                entendDal.Carregar(entityEntidadeEndereco);

                if (entityEntidadeEndereco.ene_situacao != 3)
                {
                    END_EnderecoDAO endDal = new END_EnderecoDAO {
                        _Banco = dal._Banco
                    };
                    endDal.Update_DecrementaIntegridade(entityEntidadeEndereco.end_id);
                }

                //Decrementa um na integridade de cada tipo de contato da entidade
                SYS_EntidadeContatoDAO entconDal = new SYS_EntidadeContatoDAO {
                    _Banco = dal._Banco
                };
                SYS_TipoMeioContatoDAO conDal = new SYS_TipoMeioContatoDAO {
                    _Banco = dal._Banco
                };

                DataTable dt = entconDal.SelectBy_ent_id(entity.ent_id, false, 1, 1, out totalRecords);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    conDal.Update_DecrementaIntegridade(new Guid(dt.Rows[i]["tmc_id"].ToString()));
                }

                //Decrementa um na integridade do tipo de entidade
                SYS_TipoEntidadeDAO tipoDAL = new SYS_TipoEntidadeDAO {
                    _Banco = dal._Banco
                };
                tipoDAL.Update_DecrementaIntegridade(entity.ten_id);

                //Decrementa um na integridade da entidade superior (se existir)
                if (entity.ent_idSuperior != Guid.Empty)
                {
                    dal.Update_DecrementaIntegridade(entity.ent_idSuperior);
                }

                //Deleta logicamente a entidade
                dal.Delete(entity);

                return(true);
            }
            catch (Exception err)
            {
                if (banco == null)
                {
                    dal._Banco.Close(err);
                }

                throw;
            }
            finally
            {
                if (banco == null)
                {
                    dal._Banco.Close();
                }
            }
        }
コード例 #5
0
        public static bool Save
        (
            SYS_Entidade entityEntidade
            , DataTable entityEntidadeEndereco
            , DataTable dtContatos
            , Guid ent_idSuperiorAntigo
            , Guid end_idAntigo
            , string caminho
            , string nomeLogoCliente
            , HttpPostedFile logoCliente
            , CoreLibrary.Data.Common.TalkDBTransaction banco
        )

        /* public static bool Save
         * (
         * SYS_Entidade entityEntidade
         * , END_Endereco entityEndereco
         * , SYS_EntidadeEndereco entityEntidadeEndereco
         * , DataTable dtContatos
         * , Guid ent_idSuperiorAntigo
         * , Guid end_idAntigo
         * , string caminho
         * , string nomeLogoCliente
         * , HttpPostedFile logoCliente
         * ,CoreLibrary.Data.Common.TalkDBTransaction banco
         * )*/
        {
            SYS_EntidadeDAO entDAL = new SYS_EntidadeDAO();

            if (banco == null)
            {
                entDAL._Banco.Open(IsolationLevel.ReadCommitted);
            }
            else
            {
                entDAL._Banco = banco;
            }

            try
            {
                //Salva dados na tabela SYS_Entidade
                if (entityEntidade.Validate())
                {
                    if (VerificaRazaoSocialExistente(entityEntidade))
                    {
                        throw new DuplicateNameException("Já existe uma entidade cadastrada com esta razão social.");
                    }

                    if (!string.IsNullOrEmpty(entityEntidade.ent_cnpj.Trim()))
                    {
                        if (!UtilBO._ValidaCNPJ(entityEntidade.ent_cnpj))
                        {
                            throw new ArgumentException("CNPJ inválido.");
                        }

                        if (VerificaCNPJExistente(entityEntidade))
                        {
                            throw new DuplicateNameException("Já existe uma entidade cadastrada com este CNPJ.");
                        }
                    }

                    if (!string.IsNullOrEmpty(entityEntidade.ent_urlAcesso))
                    {
                        Regex reg = new Regex(@"^(http|https):\/\/([a-z]+)(\.[a-z]+)+$");

                        if (!reg.IsMatch(entityEntidade.ent_urlAcesso))
                        {
                            throw new ArgumentException("URL de acesso inválido.");
                        }
                    }

                    if (entDAL.Salvar(entityEntidade) && !string.IsNullOrEmpty(nomeLogoCliente) && logoCliente != null)
                    {
                        nomeLogoCliente = entityEntidade.ent_id + "_" + nomeLogoCliente;

                        UtilBO.SaveThumbnailImage
                        (
                            1000
                            , caminho
                            , nomeLogoCliente
                            , logoCliente
                            , 84
                            , 60
                        );
                    }
                }
                else
                {
                    throw new CoreLibrary.Validation.Exceptions.ValidationException(entityEntidade.PropertiesErrorList[0].Message);
                }


                //TODO:[Gabriel] Multiplos endereços

                /*
                 *
                 * if (entityEntidadeEndereco != null)
                 * {
                 *  //Salva dados na tabela SYS_EntidadeEndereco
                 *  if (entityEntidadeEndereco.Validate())
                 *  {
                 *      SYS_EntidadeEnderecoDAO entendDAL = new SYS_EntidadeEnderecoDAO { _Banco = entDAL._Banco };
                 *      entityEntidadeEndereco.ent_id = entityEntidade.ent_id;
                 *      entendDAL.Salvar(entityEntidadeEndereco);
                 *  }
                 *  else
                 *  {
                 *      throw new CoreLibrary.Validation.Exceptions.ValidationException(entityEntidadeEndereco.PropertiesErrorList[0].Message);
                 *  }
                 *
                 *  if (entityEntidadeEndereco.IsNew)
                 *  {
                 *      if (entityEntidadeEndereco.end_id != Guid.Empty)
                 *      {
                 *          //Incrementa um na integridade do endereço
                 *          END_EnderecoDAO endDAL = new END_EnderecoDAO { _Banco = entDAL._Banco };
                 *          endDAL.Update_IncrementaIntegridade(entityEntidadeEndereco.end_id);
                 *      }
                 *  }
                 *  else
                 *  {
                 *      if (end_idAntigo != entityEntidadeEndereco.end_id)
                 *      {
                 *          END_EnderecoDAO endDAL = new END_EnderecoDAO { _Banco = entDAL._Banco };
                 *
                 *          if (entityEntidadeEndereco.ene_situacao != 3)
                 *          {
                 *              //Decrementa um na integridade do endereço antigo (se existia)
                 *              if (end_idAntigo != Guid.Empty)
                 *                  endDAL.Update_DecrementaIntegridade(end_idAntigo);
                 *
                 *              //Incrementa um na integridade do endereço atual (se existir)
                 *              if (entityEntidadeEndereco.end_id != Guid.Empty)
                 *                  endDAL.Update_IncrementaIntegridade(entityEntidadeEndereco.end_id);
                 *          }
                 *      }
                 *      else
                 *      {
                 *          if (entityEntidadeEndereco.ene_situacao == 3)
                 *          {
                 *              //Decrementa um na integridade do endereço atual
                 *              if (end_idAntigo != Guid.Empty)
                 *              {
                 *                  END_EnderecoDAO endDAL = new END_EnderecoDAO { _Banco = entDAL._Banco };
                 *                  endDAL.Update_DecrementaIntegridade(entityEntidadeEndereco.end_id);
                 *              }
                 *          }
                 *      }
                 *  }
                 * }
                 */

                //Salva dados na tabela SYS_EntidadeContato
                SYS_EntidadeContato entityContato = new SYS_EntidadeContato
                {
                    ent_id = entityEntidade.ent_id
                };

                for (int i = 0; i < dtContatos.Rows.Count; i++)
                {
                    if (dtContatos.Rows[i].RowState != DataRowState.Deleted)
                    {
                        if (dtContatos.Rows[i].RowState == DataRowState.Added)
                        {
                            entityContato.tmc_id       = new Guid(dtContatos.Rows[i]["tmc_id"].ToString());
                            entityContato.enc_contato  = dtContatos.Rows[i]["contato"].ToString();
                            entityContato.enc_situacao = Convert.ToByte(1);
                            entityContato.enc_id       = new Guid(dtContatos.Rows[i]["id"].ToString());
                            entityContato.IsNew        = true;
                            SYS_EntidadeContatoBO.Save(entityContato, entDAL._Banco);

                            //Incrementa um na integridade do tipo de contato
                            SYS_TipoMeioContatoDAO tipoDAL = new SYS_TipoMeioContatoDAO {
                                _Banco = entDAL._Banco
                            };
                            tipoDAL.Update_IncrementaIntegridade(entityContato.tmc_id);
                        }
                        else if (dtContatos.Rows[i].RowState == DataRowState.Modified)
                        {
                            entityContato.tmc_id       = new Guid(dtContatos.Rows[i]["tmc_id"].ToString());
                            entityContato.enc_contato  = dtContatos.Rows[i]["contato"].ToString();
                            entityContato.enc_situacao = Convert.ToByte(1);
                            entityContato.enc_id       = new Guid(dtContatos.Rows[i]["id"].ToString());
                            entityContato.IsNew        = false;
                            SYS_EntidadeContatoBO.Save(entityContato, entDAL._Banco);
                        }
                    }
                    else
                    {
                        entityContato.enc_id = (Guid)dtContatos.Rows[i]["id", DataRowVersion.Original];
                        entityContato.tmc_id = (Guid)dtContatos.Rows[i]["tmc_id", DataRowVersion.Original];
                        SYS_EntidadeContatoDAO entconDAL = new SYS_EntidadeContatoDAO {
                            _Banco = entDAL._Banco
                        };
                        entconDAL.Delete(entityContato);

                        //Decrementa um na integridade do tipo de contato
                        SYS_TipoMeioContatoDAO tipoDAL = new SYS_TipoMeioContatoDAO {
                            _Banco = entDAL._Banco
                        };
                        tipoDAL.Update_DecrementaIntegridade(entityContato.tmc_id);
                    }
                }

                if (entityEntidade.IsNew)
                {
                    //Incrementa um na integridade do tipo de entidade
                    SYS_TipoEntidadeDAO tipoDAL = new SYS_TipoEntidadeDAO {
                        _Banco = entDAL._Banco
                    };
                    tipoDAL.Update_IncrementaIntegridade(entityEntidade.ten_id);

                    //Incrementa um na integridade da entidade superior (se existir)
                    if (entityEntidade.ent_idSuperior != Guid.Empty)
                    {
                        entDAL.Update_IncrementaIntegridade(entityEntidade.ent_idSuperior);
                    }
                }
                else
                {
                    if (ent_idSuperiorAntigo != entityEntidade.ent_idSuperior)
                    {
                        //Decrementa um na integridade da entidade superior anterior (se existia)
                        if (ent_idSuperiorAntigo != Guid.Empty)
                        {
                            entDAL.Update_DecrementaIntegridade(ent_idSuperiorAntigo);
                        }

                        //Incrementa um na integridade da entidade superior atual (se existir)
                        if (entityEntidade.ent_idSuperior != Guid.Empty)
                        {
                            entDAL.Update_IncrementaIntegridade(entityEntidade.ent_idSuperior);
                        }
                    }
                }


                // endereço

                SYS_EntidadeEndereco entityEndereco = new SYS_EntidadeEndereco
                {
                    ent_id = entityEntidade.ent_id
                };

                // ABRIR CONEXÃO
                SYS_EntidadeEnderecoDAO entidadeEnderecoDAO = new SYS_EntidadeEnderecoDAO();
                entidadeEnderecoDAO._Banco = entDAL._Banco;

                for (int i = 0; i < entityEntidadeEndereco.Rows.Count; i++)
                {
                    //if (entityEntidadeEndereco.Rows[i].RowState != DataRowState.Deleted)
                    if (!Convert.ToBoolean(entityEntidadeEndereco.Rows[i]["excluido"].ToString()))
                    {
                        string end_id = entityEntidadeEndereco.Rows[i]["end_id"].ToString();

                        if ((String.IsNullOrEmpty(end_id)) || (end_id.Equals(Guid.Empty.ToString())))
                        {
                            END_Endereco entityNovoEndereco = new END_Endereco
                            {
                                //[OLD]end_id = new Guid(dtEndereco.Rows[i]["end_id"].ToString())
                                end_cep = entityEntidadeEndereco.Rows[i]["end_cep"].ToString()
                                ,
                                end_logradouro = entityEntidadeEndereco.Rows[i]["end_logradouro"].ToString()
                                ,
                                end_distrito = entityEntidadeEndereco.Rows[i]["end_distrito"].ToString()
                                ,
                                end_zona = entityEntidadeEndereco.Rows[i]["end_zona"].ToString() == "0" || string.IsNullOrEmpty(entityEntidadeEndereco.Rows[i]["end_zona"].ToString()) ? Convert.ToByte(0) : Convert.ToByte(entityEntidadeEndereco.Rows[i]["end_zona"].ToString())
                                ,
                                end_bairro = entityEntidadeEndereco.Rows[i]["end_bairro"].ToString()
                                ,
                                cid_id = new Guid(entityEntidadeEndereco.Rows[i]["cid_id"].ToString())
                                ,
                                end_situacao = Convert.ToByte(1)
                            };
                            //Inclui dados na tabela END_Endereco (se necessário)
                            if (entityNovoEndereco.end_id == Guid.Empty)
                            {
                                entityEndereco.end_id     = END_EnderecoBO.Save(entityNovoEndereco, Guid.Empty, entDAL._Banco);
                                entityNovoEndereco.end_id = entityEndereco.end_id;
                            }
                            //
                            entityEntidadeEndereco.Rows[i]["end_id"] = entityNovoEndereco.end_id;
                        }
                        string endRel_id = entityEntidadeEndereco.Rows[i]["endRel_id"].ToString();

                        if (entityEntidadeEndereco.Rows[i].RowState == DataRowState.Added || string.IsNullOrEmpty(endRel_id))
                        {
                            //TRATA DECIMAL
                            decimal latitude  = string.IsNullOrEmpty(entityEntidadeEndereco.Rows[i]["latitude"].ToString()) ? 0 : decimal.Parse(entityEntidadeEndereco.Rows[i]["latitude"].ToString());
                            decimal longitude = string.IsNullOrEmpty(entityEntidadeEndereco.Rows[i]["longitude"].ToString()) ? 0 : decimal.Parse(entityEntidadeEndereco.Rows[i]["longitude"].ToString());
                            //ATRIBUI VALORES
                            entityEndereco.ent_id          = entityEntidade.ent_id;
                            entityEndereco.end_id          = new Guid(entityEntidadeEndereco.Rows[i]["end_id"].ToString());
                            entityEndereco.ene_numero      = entityEntidadeEndereco.Rows[i]["numero"].ToString();
                            entityEndereco.ene_complemento = entityEntidadeEndereco.Rows[i]["complemento"].ToString();
                            entityEndereco.ene_situacao    = Convert.ToByte(1);
                            entityEndereco.ene_id          = new Guid(entityEntidadeEndereco.Rows[i]["id"].ToString());
                            entityEndereco.IsNew           = true;
                            //
                            entityEndereco.ene_enderecoPrincipal = string.IsNullOrEmpty(entityEntidadeEndereco.Rows[i]["enderecoprincipal"].ToString()) ? false : Convert.ToBoolean(entityEntidadeEndereco.Rows[i]["enderecoprincipal"]);
                            entityEndereco.ene_latitude          = latitude;
                            entityEndereco.ene_longitude         = longitude;
                            //
                            entidadeEnderecoDAO.Salvar(entityEndereco);
                        }
                        else if (entityEntidadeEndereco.Rows[i].RowState == DataRowState.Modified && !string.IsNullOrEmpty(endRel_id))
                        {
                            //TRATA DECIMAL
                            decimal latitude  = string.IsNullOrEmpty(entityEntidadeEndereco.Rows[i]["latitude"].ToString()) ? 0 : decimal.Parse(entityEntidadeEndereco.Rows[i]["latitude"].ToString());
                            decimal longitude = string.IsNullOrEmpty(entityEntidadeEndereco.Rows[i]["longitude"].ToString()) ? 0 : decimal.Parse(entityEntidadeEndereco.Rows[i]["longitude"].ToString());
                            //ATRIBUI VALORES
                            entityEndereco.ene_id = new Guid(entityEntidadeEndereco.Rows[i]["endRel_id"].ToString());
                            entityEndereco.ent_id = entityEntidade.ent_id;
                            entityEndereco.end_id = new Guid(entityEntidadeEndereco.Rows[i]["end_id"].ToString());
                            //
                            entityEndereco.ene_numero      = entityEntidadeEndereco.Rows[i]["numero"].ToString();
                            entityEndereco.ene_complemento = entityEntidadeEndereco.Rows[i]["complemento"].ToString();
                            bool excluido = Convert.ToBoolean(entityEntidadeEndereco.Rows[i]["excluido"]);
                            if (excluido)
                            {
                                entityEndereco.ene_situacao = Convert.ToByte(3);
                            }
                            else
                            {
                                entityEndereco.ene_situacao = Convert.ToByte(1);
                            }
                            entityEndereco.IsNew = false;
                            //
                            entityEndereco.ene_enderecoPrincipal = string.IsNullOrEmpty(entityEntidadeEndereco.Rows[i]["enderecoprincipal"].ToString()) ? false : Convert.ToBoolean(entityEntidadeEndereco.Rows[i]["enderecoprincipal"]);
                            entityEndereco.ene_latitude          = latitude;
                            entityEndereco.ene_longitude         = longitude;
                            //
                            entidadeEnderecoDAO.Salvar(entityEndereco);
                        }
                    }
                    else
                    {
                        entityEndereco.ene_id = new Guid(entityEntidadeEndereco.Rows[i]["endRel_id", DataRowVersion.Original].ToString());
                        entityEndereco.end_id = new Guid(entityEntidadeEndereco.Rows[i]["end_id", DataRowVersion.Original].ToString());
                        entidadeEnderecoDAO.Delete(entityEndereco);
                    }
                }

                return(true);
            }
            catch (Exception err)
            {
                if (banco == null)
                {
                    entDAL._Banco.Close(err);
                }

                throw;
            }
            finally
            {
                if (banco == null)
                {
                    entDAL._Banco.Close();
                }
            }
        }
コード例 #6
0
        /// <summary>
        /// Verifica se a Session do usuário está nula,
        /// se estiver verifica o FormsIdentity e carrega a Session
        /// </summary>
        private void GetFormsIdentityLoadSession()
        {
            try
            {
                if (HttpContext.Current.User.Identity.IsAuthenticated)
                {
                    //var identity = HttpContext.Current.User.Identity as FormsIdentity;
                    //if (identity != null)
                    //{
                    var identity = HttpContext.Current.User.Identity;
                    var entityId = identity.GetEntityId();
                    var usuLogin = identity.GetUsuLogin();
                    if (identity != null && entityId != null && usuLogin != null)
                    {
                        //    // Recupera Ticket de autenticação gravado em Cookie
                        //    FormsIdentity id = identity;
                        //FormsAuthenticationTicket ticket = id.Ticket;

                        // Carrega usuário na session através do ticket de authenticação
                        __SessionWEB.__UsuarioWEB.Usuario = new SYS_Usuario
                        {
                            ent_id    = new Guid(entityId),
                            usu_login = usuLogin
                        };
                        SYS_UsuarioBO.GetSelectBy_ent_id_usu_login(__SessionWEB.__UsuarioWEB.Usuario);

                        // Carrega grupo na session através do ticket de autenticação
                        var gru_id = identity.GetGrupoId();
                        if (!string.IsNullOrEmpty(gru_id))
                        {
                            __SessionWEB.__UsuarioWEB.Grupo = SYS_GrupoBO.GetEntity(new SYS_Grupo {
                                gru_id = new Guid(gru_id)
                            });
                        }
                        else
                        {
                            // Carrega grupos do usuário
                            IList <SYS_Grupo> list = SYS_GrupoBO.GetSelectBySis_idAndUsu_id(
                                __SessionWEB.__UsuarioWEB.Usuario.usu_id
                                , ApplicationWEB.SistemaID);

                            // Verifica se foi carregado os grupos do usuário
                            if (list.Count > 0)
                            {
                                // Seleciona o primeiro grupo do usuário logado para carregar na Session
                                __SessionWEB.__UsuarioWEB.Grupo = list[0];

                                DataTable dtUaPermissao = ESC_EscolaBO.RetornaUAPermissaoUsuarioGrupo(__SessionWEB.__UsuarioWEB.Usuario.usu_id, ApplicationWEB._EntidadeID, __SessionWEB.__UsuarioWEB.Grupo.gru_id);
                                if (dtUaPermissao.Rows.Count > 0)
                                {
                                    int esc_id;
                                    Int32.TryParse(dtUaPermissao.Rows[0]["esc_id"].ToString(), out esc_id);
                                    __SessionWEB.__UsuarioWEB.Esc_idPermissao = esc_id;

                                    //Caso não tenha escola, significa que o usuário possui permissão de Gestão
                                    if (esc_id == 0)
                                    {
                                        if (!string.IsNullOrEmpty(dtUaPermissao.Rows[0]["uad_idSuperior"].ToString()))
                                        {
                                            __SessionWEB.__UsuarioWEB.Uad_idSuperiorPermissao = new Guid(dtUaPermissao.Rows[0]["uad_idSuperior"].ToString());
                                        }
                                    }
                                }
                            }
                        }
                        // Carrega o cid_id na session referente a entidade do usuário autenticado
                        Guid ent_id = __SessionWEB.__UsuarioWEB.Usuario.ent_id;
                        Guid ene_id = SYS_EntidadeEnderecoBO.Select_ene_idBy_ent_id(ent_id);

                        SYS_EntidadeEndereco entityEntidadeEndereco = new SYS_EntidadeEndereco {
                            ent_id = ent_id, ene_id = ene_id
                        };
                        SYS_EntidadeEnderecoBO.GetEntity(entityEntidadeEndereco);

                        END_Endereco entityEndereco = new END_Endereco {
                            end_id = entityEntidadeEndereco.end_id
                        };
                        END_EnderecoBO.GetEntity(entityEndereco);

                        __SessionWEB._cid_id = entityEndereco.cid_id;

                        // Carrega nome ou login na session do usuário autenticado
                        PES_Pessoa entityPessoa = new PES_Pessoa {
                            pes_id = __SessionWEB.__UsuarioWEB.Usuario.pes_id
                        };
                        PES_PessoaBO.GetEntity(entityPessoa);
                        __SessionWEB.UsuarioLogado = string.IsNullOrEmpty(entityPessoa.pes_nome) ? __SessionWEB.__UsuarioWEB.Usuario.usu_login : entityPessoa.pes_nome;

                        LoadSessionSistema();
                    }
                }
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
            }
        }