public IList<Program> GetProgramExists(Channel channel, DateTime startTime, DateTime endTime)
{
IFormatProvider mmddFormat = new CultureInfo(String.Empty, false);
SqlBuilder sb = new SqlBuilder(StatementType.Select, typeof (Program));
string sub1 =
String.Format("( (StartTime >= '{0}' and StartTime < '{1}') or ( EndTime > '{0}' and EndTime <= '{1}' ) )",
startTime.ToString(GetDateTimeString(), mmddFormat),
endTime.ToString(GetDateTimeString(), mmddFormat));
string sub2 = String.Format("(StartTime < '{0}' and EndTime > '{1}')",
startTime.ToString(GetDateTimeString(), mmddFormat),
endTime.ToString(GetDateTimeString(), mmddFormat));
sb.AddConstraint(Operator.Equals, "idChannel", channel.IdChannel);
sb.AddConstraint(string.Format("({0} or {1}) ", sub1, sub2));
sb.AddOrderByField(true, "starttime");
SqlStatement stmt = sb.GetStatement(true);
return ObjectFactory.GetCollection<Program>(stmt.Execute());
}