/// <summary>
        /// Busca os tipos de resultados, de acordo com o curso, o currículo e o período.
        /// </summary>
        /// <param name="cur_id">ID do curso</param>
        /// <param name="crr_id">ID do currículo</param>
        /// <param name="crp_id">ID do período</param>
        /// <returns></returns>
        public static List <Struct_TipoResultado> SelecionaTipoResultado(int cur_id, int crr_id, int crp_id, EnumTipoLancamento tipoLancamento, int tds_id = -1)
        {
            List <Struct_TipoResultado> dados = null;

            if (HttpContext.Current != null)
            {
                // Chave padrão do cache - nome do método + parâmetros.
                string chave = RetornaChaveCache_TipoResultado(cur_id, crr_id, crp_id, tipoLancamento, tds_id);
                object cache = HttpContext.Current.Cache[chave];

                if (cache == null)
                {
                    dados = SelecionaTipoResultado(cur_id, crr_id, crp_id, (byte)tipoLancamento, tds_id);

                    // Adiciona cache com validade de 6h.
                    HttpContext.Current.Cache.Insert(chave, dados, null, DateTime.Now.AddMinutes(GestaoEscolarUtilBO.MinutosCacheMedio)
                                                     , System.Web.Caching.Cache.NoSlidingExpiration);
                }
                else
                {
                    dados = (List <Struct_TipoResultado>)cache;
                }
            }

            if (dados == null)
            {
                // Se não carregou pelo cache, seleciona os dados do banco.
                dados = SelecionaTipoResultado(cur_id, crr_id, crp_id, (byte)tipoLancamento, tds_id);
            }

            return(dados);
        }
 /// <summary>
 /// Retorna a chave do cache utilizada para a consulta de tipos de resultados.
 /// </summary>
 /// <param name="cur_id">ID do curso</param>
 /// <param name="crr_id">ID do currículo</param>
 /// <param name="crp_id">ID do período</param>
 /// <param name="tipoLancamento">Tipo de lançamento</param>
 /// <param name="tds_id">Tipo de disciplina</param>
 /// <returns></returns>
 public static string RetornaChaveCache_TipoResultado(int cur_id, int crr_id, int crp_id, EnumTipoLancamento tipoLancamento, int tds_id)
 {
     return(string.Format("{0}_{1}_{2}_{3}_{4}_{5}", Cache_TipoResultado, cur_id, crr_id, crp_id, (byte)tipoLancamento, tds_id));
 }