public bool Inserir(LembreteEntity lembrete) { try { connection.Open(); SqlCommand command = new SqlCommand("INSERT INTO Lembrete VALUES ((SELECT codPar FROM Participante WHERE cpfUsu = @cpfUsu AND codAti = @codAti), @datLem, @horLem, @diaLem, @semLem)", connection); command.Parameters.AddWithValue("@cpfUsu", lembrete.cpfUsu); command.Parameters.AddWithValue("@codAti", lembrete.codAti); command.Parameters.AddWithValue("@datLem", lembrete.datLem); command.Parameters.AddWithValue("@horLem", lembrete.horLem); command.Parameters.AddWithValue("@diaLem", lembrete.diaLem); command.Parameters.AddWithValue("@semLem", lembrete.semLem); command.ExecuteNonQuery(); } catch { return false; } finally { if (connection != null) connection.Close(); } return true; }
public LembreteEntity Obter(int codLem) { LembreteEntity lembrete = new LembreteEntity(); try { connection.Open(); SqlCommand command = new SqlCommand("SELECT DISTINCT codLem, Lembrete.codPar, datLem, horLem, diaLem, semLem, cpfUsu, Participante.codAti, datAti, horAti FROM Lembrete LEFT JOIN Participante ON Lembrete.codPar = Participante.codPar LEFT JOIN Atividade ON Participante.codAti = Atividade.codAti WHERE codPar = @codPar ORDER BY datLem", connection); command.Parameters.AddWithValue("@codLem", codLem); IDataReader reader = command.ExecuteReader(); reader.Read(); lembrete.codLem = ExtraDAO.ObterValor<int>(reader, 0, 0); lembrete.codPar = ExtraDAO.ObterValor<int>(reader, 1, 0); lembrete.datLem = ExtraDAO.ObterValor<DateTime>(reader, 2, new DateTime()).ToShortDateString(); lembrete.horLem = ExtraDAO.ObterValor<TimeSpan>(reader, 3, new TimeSpan()).ToString().Substring(0, 5); lembrete.diaLem = ExtraDAO.ObterValor<int>(reader, 4, 0); lembrete.semLem = ExtraDAO.ObterValor<bool>(reader, 5, false); lembrete.cpfUsu = ExtraDAO.ObterValor<string>(reader, 6, null); lembrete.codAti = ExtraDAO.ObterValor<int>(reader, 7, 0); lembrete.datAti = ExtraDAO.ObterValor<DateTime>(reader, 8, new DateTime()).ToShortDateString(); lembrete.horAti = ExtraDAO.ObterValor<TimeSpan>(reader, 9, new TimeSpan()).ToString().Substring(0, 5); } finally { if (connection != null) connection.Close(); } return lembrete; }
public void TestInitialize1() { lembrete = new LembreteEntity(); lembreteDAO = new LembreteDAO(); }
// Método que verifica lembretes ativos e envia email // O método original seria void, porém para fazer o TDD será usado bool para simplificar a codificação public bool Verificar(LembreteEntity lembrete) { DateTime dataAtual = Convert.ToDateTime(DateTime.Now.Date.ToShortDateString()); TimeSpan horaAtual = Convert.ToDateTime(DateTime.Now.TimeOfDay.ToString().Substring(0, 5)).TimeOfDay; int diaLem = lembrete.diaLem; if (diaLem == 0) { DateTime datLem = Convert.ToDateTime(lembrete.datLem); TimeSpan horLem = Convert.ToDateTime(lembrete.horLem).TimeOfDay; if (datLem == dataAtual && horLem == horaAtual) return true; } else { DateTime datAti = Convert.ToDateTime(lembrete.datAti); TimeSpan horAti = Convert.ToDateTime(lembrete.horAti).TimeOfDay; if (lembrete.semLem == false) { DateTime datLem = datAti.AddDays(diaLem * -1); TimeSpan horLem = horAti; if (datLem <= dataAtual && datAti > dataAtual && horLem == horaAtual) return true; } else { int fimDeSemana = 0; for (int i = 1; i <= diaLem; i++) { if (datAti.AddDays(i * -1).DayOfWeek == DayOfWeek.Saturday || datAti.AddDays(i * -1).DayOfWeek == DayOfWeek.Sunday) fimDeSemana++; } DateTime datLem = datAti.AddDays((diaLem + fimDeSemana) * -1); TimeSpan horLem = horAti; if (dataAtual.DayOfWeek != DayOfWeek.Saturday && dataAtual.DayOfWeek != DayOfWeek.Sunday && datLem <= dataAtual && datAti > dataAtual && horLem == horaAtual) return true; } } return false; }