|
public override IScheduleAppointmentList GetSchedule(System.DateTime startDate, System.DateTime endDate)
{
ScheduleAppointmentList list = new ScheduleAppointmentList();
System.DateTime start = startDate.Date;
System.DateTime end = endDate.Date;
if (ScheduleList != null && ScheduleList.Count > 0)
{
return list;
}
foreach (ScheduleAppointment item in this.MasterList)
{
if ((item.StartTime.Date >= start && item.StartTime.Date <= end) || (item.EndTime.AddMinutes(-1).Date > start && item.EndTime.Date <= end))
{
if (item.StartTime < item.EndTime)
{
int count = ((TimeSpan)(item.EndTime.Date - item.StartTime.Date)).Days + 1;
System.DateTime meanDate = DateTime.Now;
System.DateTime meanStartDate = DateTime.Now;
System.DateTime tempEndTime = DateTime.Now;
bool intialized = true;
for (int i = 0; i < count; i++)
{
IScheduleAppointment item1 = item.Clone() as IScheduleAppointment;
if (intialized)
{
meanStartDate = item.StartTime;
meanDate = item.EndTime.Date;
tempEndTime = item.EndTime;
intialized = false;
}
else
{
item1.StartTime = meanStartDate.AddDays(i).Date;
}
if (item.StartTime.Date < meanDate)
{
item1.EndTime = item1.StartTime.Date;
}
else if (item.StartTime.Date.Equals(meanDate))
{
item1.EndTime = tempEndTime;
}
list.Add(item1);
}
}
else
{
list.Add(item);
}
}
}
list.SortStartTime();
ScheduleList = list;
return list;
} |
|
ArrayListAppointmentList masterlist = new ArrayListAppointmentList();
for (int i = 0; i < 5; ++i)
{
ArrayListAppointment item = masterlist.NewScheduleAppointment() as ArrayListAppointment;
int dayOffSet = 30 - r.Next(60);
int hourOffSet = 24 - r.Next(48);
len += (i + 1);
item.StartTime = now.AddDays(i);
item.EndTime = item.StartTime.AddDays(2);// ((double)len);
item.Subject = string.Format("subject{0}", i);
item.Content = string.Format("content{0}", i);
item.LabelValue = i%10;
item.LocationValue = string.Format("location{0}", r1.Next(5));
item.UniqueID = this.GetUniqueID();
if (item.RecurrenceRuleID == -1)
item.RecurrenceRuleID = item.UniqueID;
item.ReminderValue = r1.Next(10) < 5 ? 0 : r1.Next(12);
item.Reminder = r1.Next(10) > 1;
item.AllDay = r1.Next(10) < 1;
item.MarkerValue = r1.Next(4);
item.Dirty = false;
masterlist.Add(item);
}
|