コード例 #1
0
        private void Pesquisar()
        {
            var lstLimite      = ACA_EventoLimiteBO.GetSelectByCalendario(VS_cal_id);
            var tblTipoEvento  = ACA_TipoEventoBO.SelecionaTipoEvento(0, Guid.Empty);
            var lstTipoPeriodo = ACA_TipoPeriodoCalendarioBO.SelecionaTipoPeriodoCalendarioPorCalendario(VS_cal_id, ApplicationWEB.AppMinutosCacheLongo);

            int    tpc_idRecesso   = ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_PERIODO_CALENDARIO_RECESSO, __SessionWEB.__UsuarioWEB.Usuario.ent_id);
            string tcp_nomeRecesso = string.Empty;

            if (tpc_idRecesso > 0)
            {
                ACA_TipoPeriodoCalendario tpc = new ACA_TipoPeriodoCalendario {
                    tpc_id = tpc_idRecesso
                };
                ACA_TipoPeriodoCalendarioBO.GetEntity(tpc);
                tcp_nomeRecesso = tpc.tpc_nome;
            }

            var source = lstLimite.Join(tblTipoEvento.Rows.Cast <DataRow>(),
                                        evl => evl.tev_id,
                                        tev => Convert.ToInt32(tev["tev_id"]),
                                        (evl, tev) => new sLimite()
            {
                tev_nome = tev["tev_nome"].ToString(),
                tpc_nome = (evl.tpc_id > 0
                                                                        ? (evl.tpc_id == tpc_idRecesso ? tcp_nomeRecesso : lstTipoPeriodo.First(tpc => tpc.tpc_id == evl.tpc_id).tpc_nome)
                                                                        : string.Empty),
                tev_id = evl.tev_id,
                evl_id = evl.evl_id,
                evl    = evl
            })
                         .GroupBy(evl => string.Format("{0}{1}{2}",
                                                       evl.tev_nome,
                                                       (string.IsNullOrEmpty(evl.tpc_nome) ? string.Empty : " - "),
                                                       evl.tpc_nome))
                         .Select(grp => new
            {
                TipoEventoBimestre = grp.Key,
                Limites            = grp.ToList()
            })
                         .OrderBy(grp => grp.TipoEventoBimestre);

            rptLimitesCalendario.DataSource = source;
            rptLimitesCalendario.DataBind();
        }