Exemplo n.º 1
0
        public CampanhasEnviados BuscarDados(int id)
        {
            try
            {
                CampanhasEnviados campanhas = null;

                DBSession session = new DBSession();
                Query     quey    = session.CreateQuery("select isnull((select top 1 me.dtenviarapartir from mailing_enviados as me where me.idcampanha = mc.idcampanha order by me.dtenviarapartir), '01/01/1900') as data, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha) as selecionados, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha and me.flenviado = 1) as enviados, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha and exists (select * from mailing_abriu as ma where ma.idenviado = me.idenviado)) as abertos, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha and exists (select * from mailing_clicou as ma where ma.idenviado = me.idenviado)) as clicados, (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_campanhas_cursos mcc on mcc.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mcc.idcurso where me.idcampanha = @idcampanha) as inscricoes, (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_abriu ma on ma.idenviado = me.idenviado inner join mailing_campanhas_cursos mcc on mcc.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mcc.idcurso where me.idcampanha = @idcampanha) as inscricoesa, (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_clicou mc on mc.idenviado = me.idenviado inner join mailing_campanhas_cursos mcc on mcc.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mcc.idcurso where me.idcampanha = @idcampanha) as inscricoesc, mc.idmensagem, mc.txcodigo, (select count(*) from mailing_descadastrar as md WHERE md.idcampanha = mc.idcampanha) as descadastrados from mailing_campanhas as mc where mc.idcampanha = @idcampanha");
                quey.SetParameter("idcampanha", id);
                IDataReader reader = quey.ExecuteQuery();

                if (reader.Read())
                {
                    campanhas = new CampanhasEnviados(Convert.ToDateTime(reader["data"]), Convert.ToInt32(reader["enviados"]), Convert.ToInt32(reader["abertos"]), Convert.ToInt32(reader["inscricoes"]), Convert.ToInt32(reader["clicados"]), Convert.ToInt32(reader["inscricoesa"]), Convert.ToInt32(reader["inscricoesc"]), Convert.ToInt32(reader["idmensagem"]), Convert.ToString(reader["txcodigo"]), Convert.ToInt32(reader["descadastrados"]), Convert.ToInt32(reader["selecionados"]));
                }
                reader.Close();
                session.Close();

                return(campanhas);
            }
            catch (Exception error)
            {
                throw error;
            }
        }
Exemplo n.º 2
0
        public CampanhasEnviados BuscarEnviados(int id, int page = 1, int regs = 500)
        {
            try
            {
                CampanhasEnviados campanhas = null;

                DBSession session = new DBSession();
                Query     quey    = session.CreateQuery("select mc.idcampanha, mc.txcampanha, mc.idmensagem, mc.flativo, mc.txcodigo, isnull((select top 1 me.dtenviarapartir from mailing_enviados as me where me.idcampanha = mc.idcampanha order by me.dtenviarapartir), '01/01/1900') as data, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha) as enviados, (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha and exists (select * from mailing_abriu as ma where ma.idenviado = me.idenviado)) as abertos, (select count(*) as qtd from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and exists (select * from mailing_campanhas_cursos where mailing_campanhas_cursos.idcampanha = me.idcampanha and mailing_campanhas_cursos.idcurso = ac.curso) inner join curso as c ON c.codigo = ac.curso where me.idcampanha = mc.idcampanha and a.codigo not in (317, 4402)) as inscricoes from mailing_campanhas as mc where mc.idcampanha = @idcampanha");
                quey.SetParameter("idcampanha", id);
                IDataReader reader = quey.ExecuteQuery();

                if (reader.Read())
                {
                    campanhas = new CampanhasEnviados(Convert.ToInt32(reader["idcampanha"]), Convert.ToString(reader["txcampanha"]), Convert.ToInt32(reader["idmensagem"]), Convert.ToInt32(reader["flativo"]), Convert.ToString(reader["txcodigo"]), Convert.ToDateTime(reader["data"]), Convert.ToInt32(reader["enviados"]), Convert.ToInt32(reader["abertos"]), Convert.ToInt32(reader["inscricoes"]), ListarEnviados(Convert.ToInt32(reader["idcampanha"]), page, regs), ListarCursosInscritos(Convert.ToInt32(reader["idcampanha"])));
                }
                reader.Close();
                session.Close();

                return(campanhas);
            }
            catch (Exception error)
            {
                throw error;
            }
        }
Exemplo n.º 3
0
        public CampanhasEnviados Dados()
        {
            try
            {
                CampanhasEnviados dados = new CampanhasEnviados();

                DBSession   session = new DBSession();
                Query       quey    = session.CreateQuery(@"select 
                    (SELECT COUNT(*) FROM mailing_enviados WHERE FLENVIADO = 1) as enviados,
                    (SELECT COUNT(*) FROM mailing_abriu) as abertos,
                    (SELECT COUNT(*) FROM mailing_clicou) as clicados,
                    (SELEct count(*) from mailing_descadastrar) as descadastrados,
                    (select count(*) as qtd from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and exists(select* from mailing_campanhas_cursos where mailing_campanhas_cursos.idcampanha = me.idcampanha and mailing_campanhas_cursos.idcurso = ac.curso) inner join curso as c ON c.codigo = ac.curso where a.codigo not in (select idaluno from timeline_usuarios where flignorar = 1)) as inscricoes,
                    (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_abriu ma on ma.idenviado = me.idenviado inner join mailing_campanhas_cursos mcc on mcc.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mcc.idcurso) as inscricoesa,
                    (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_clicou mc on mc.idenviado = me.idenviado inner join mailing_campanhas_cursos mcc on mcc.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mcc.idcurso) as inscricoesc");
                IDataReader reader  = quey.ExecuteQuery();
                if (reader.Read())
                {
                    dados = new CampanhasEnviados()
                    {
                        enviados        = Convert.ToInt32(reader["enviados"]),
                        abertos         = Convert.ToInt32(reader["abertos"]),
                        inscricoes      = Convert.ToInt32(reader["inscricoes"]),
                        clicados        = Convert.ToInt32(reader["clicados"]),
                        descadastrados  = Convert.ToInt32(reader["descadastrados"]),
                        taxa_abertura   = (double)Convert.ToInt32(reader["abertos"]) / (double)Convert.ToInt32(reader["enviados"]) * 100,
                        taxa_inscricoes = ((double)Convert.ToInt32(reader["inscricoes"]) / (double)Convert.ToInt32(reader["abertos"])) * 100,
                        taxa_clicados   = ((double)Convert.ToInt32(reader["clicados"]) / (double)Convert.ToInt32(reader["abertos"])) * 100,
                        inscricoesa     = Convert.ToInt32(reader["inscricoesa"]),
                        inscricoesc     = Convert.ToInt32(reader["inscricoesc"])
                    };
                }

                reader.Close();
                session.Close();

                return(dados);
            }
            catch (Exception error)
            {
                throw error;
            }
        }
Exemplo n.º 4
0
        public List <TimelineEventos> EventosEmails(int turma)
        {
            try
            {
                List <TimelineEventos> eventos = new List <TimelineEventos>();

                DBSession session = new DBSession();
                //Query quey = session.CreateQuery("select mca.dtenvio as data, mcc.idcampanha, mc.txcampanha from mailing_campanhas_cursos mcc inner join mailing_campanhas mc on mc.idcampanha = mcc.idcampanha inner join mailing_campanhas_agendamento mca on mca.idcampanha = mcc.idcampanha where mcc.idcurso = @turma and mca.dtenvio is not null order by mca.dtenvio");
                Query quey = session.CreateQuery(@"select mca.dtenvio as data, mcc.idcampanha, mc.txcampanha,
	                isnull((select top 1 me.dtenviarapartir from mailing_enviados as me where me.idcampanha = mc.idcampanha order by me.dtenviarapartir), '01/01/1900') as data2,
	                (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha) as selecionados, 
	                (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha and me.flenviado = 1) as enviados, 
	                (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha and exists (select * from mailing_abriu as ma where ma.idenviado = me.idenviado)) as abertos, 
	                (select count(*) from mailing_enviados as me WHERE me.idcampanha = mc.idcampanha and exists (select * from mailing_clicou as ma where ma.idenviado = me.idenviado)) as clicados, 
	                (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_campanhas_cursos mccu on mccu.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mccu.idcurso where me.idcampanha = mcc.idcampanha) as inscricoes, 
	                (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_abriu ma on ma.idenviado = me.idenviado inner join mailing_campanhas_cursos mccu on mccu.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mccu.idcurso where me.idcampanha = mcc.idcampanha) as inscricoesa, 
	                (select count(distinct(aluno)) from aluno as a inner join mailing_enviados me ON a.email = me.txpara inner join mailing_clicou mc on mc.idenviado = me.idenviado inner join mailing_campanhas_cursos mccu on mccu.idcampanha = me.idcampanha inner join aluno_curso as ac ON a.codigo = ac.aluno and cast(me.dtenviarapartir as date) <= ac.adesao and ac.curso = mccu.idcurso where me.idcampanha = mcc.idcampanha) as inscricoesc, 
	                mc.idmensagem, mc.txcodigo, 
	                (select count(*) from mailing_descadastrar as md WHERE md.idcampanha = mc.idcampanha) as descadastrados 
                from mailing_campanhas_cursos mcc 
                inner join mailing_campanhas mc on mc.idcampanha = mcc.idcampanha 
                inner join mailing_campanhas_agendamento mca on mca.idcampanha = mcc.idcampanha 
                where mcc.idcurso = @turma and mca.dtenvio is not null 
                order by mca.dtenvio
                ");
                quey.SetParameter("turma", turma);
                IDataReader reader = quey.ExecuteQuery();

                while (reader.Read())
                {
                    CampanhasEnviados campanhas = new CampanhasEnviados();
                    campanhas.idcampanha      = Convert.ToInt32(reader["idcampanha"]);
                    campanhas.data            = Convert.ToDateTime(reader["data2"]);
                    campanhas.selecionados    = Convert.ToInt32(reader["selecionados"]);
                    campanhas.enviados        = Convert.ToInt32(reader["enviados"]);
                    campanhas.inscricoes      = Convert.ToInt32(reader["inscricoes"]);
                    campanhas.abertos         = Convert.ToInt32(reader["abertos"]);
                    campanhas.clicados        = Convert.ToInt32(reader["clicados"]);
                    campanhas.inscricoesa     = Convert.ToInt32(reader["inscricoesa"]);
                    campanhas.inscricoesc     = Convert.ToInt32(reader["inscricoesc"]);
                    campanhas.taxa_abertura   = (double)Convert.ToInt32(reader["abertos"]) / (double)Convert.ToInt32(reader["enviados"]) * 100;
                    campanhas.taxa_inscricoes = ((double)Convert.ToInt32(reader["inscricoesa"]) / (double)Convert.ToInt32(reader["abertos"])) * 100;
                    campanhas.taxa_clicados   = ((double)Convert.ToInt32(reader["clicados"]) / (double)Convert.ToInt32(reader["abertos"])) * 100;
                    campanhas.idmensagem      = new DB.MensagensDB().Buscar(Convert.ToInt32(reader["idmensagem"]));
                    campanhas.txcodigo        = Convert.ToString(reader["txcodigo"]);
                    campanhas.descadastrados  = Convert.ToInt32(reader["descadastrados"]);

                    eventos.Add(new TimelineEventos()
                    {
                        data     = Convert.ToDateTime(reader["data"]),
                        tipo     = 6,
                        usuario  = Convert.ToInt32(reader["idcampanha"]),
                        titulo   = Convert.ToString(reader["txcampanha"]),
                        campanha = campanhas
                    });
                }
                reader.Close();
                session.Close();

                return(eventos);
            }
            catch (Exception error)
            {
                throw error;
            }
        }