Пример #1
0
        public void VerificaEmail()
        {
            // Pega data atual
            cDia = DateTime.Now.ToString("dd");
            cMes = DateTime.Now.ToString("MM");
            cAno = DateTime.Now.ToString("yyyy");

            // Seleciona todos os aniversariantes do dia
            var objDB = new DatabaseHelper("aniversariantes");

            // Gero query que vai retornar os aniversariantes do dia
            var query = String.Format("SELECT id, c_nome, c_email, n_mensagem_id, n_dia, n_mes FROM dados.aniversariantes WHERE n_dia = '{0}' AND n_mes = '{1}' AND b_ativo = true AND b_deletado = false ORDER BY id",cDia,cMes);

            // Salvo os aniversariantes em um DataTable
            var AniversariantesDeHoje = objDB.GetDataTable(query);

            // Para cada linha do DataTable
            foreach (DataRow row in AniversariantesDeHoje.Rows) {
                // Defino id do usuario
                var idUsuario = row["id"].ToString();

                // Gero novo objeto de acesso ao banco de dados
                var objAniversariante = new DatabaseHelper("aniversariantes");

                // Gero Sql para verificar se já foi enviado um email para este usuário nesta data
                var query2 = String.Format("SELECT * FROM dados.historico WHERE n_aniversarianteid = '{0}' AND  c_dia = '{1}' AND c_mes = '{2}' AND c_ano = '{3}' AND b_deletado = false",idUsuario,cDia,cMes,cAno);

                // Executo o query e salvo na variavel result
                var result = objAniversariante.ExecuteScalar(query2);

                // Se não existir a mensagem ainda,  ou seja, não foi enviado email para este usuário
                if (string.IsNullOrEmpty(result)) {
                    EnviaEmail(idUsuario);
                }
            }
        }