private SPCalendarItemCollection getDataFromCalendar(String str_calendarlist_url, String Organizer)
{
SPCalendarItemCollection collection = new SPCalendarItemCollection();string temp = “”;SPList oList = GetListByUrl(str_calendarlist_url);SPCalendarItem citem = null;
foreach (SPListItem item in oList.Items)
{
// Get calendar item which is not recurrence event
if (!(bool.Parse(item[“Recurrence”].ToString())))
{
if (item[“Location”] != null)
{
// Filter with Location
if (item[“Location”].ToString().ToLower().Trim() == Organizer.ToLower().Trim())
{
citem = new SPCalendarItem();
citem.ItemID = item[“ID”].ToString();
try
{
citem.StartDate = DateTime.Parse(item[“EventDate”].ToString());
}
catch { }
try
{
citem.EndDate = DateTime.Parse(item[“EndDate”].ToString());
}
catch { }
temp = item[“Title”] as string;
temp += ” ” + item[“RecurrenceData”];
citem.Title = item[“Title”] as string;
temp = oList.ParentWebUrl + “/” + oList.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url;
citem.DisplayFormUrl = temp.Replace(“//”, “/”);
citem.Location = item[“Location”] as string;
citem.Description = item[“Description”] as string;
if (bool.Parse(item[“Recurrence”].ToString()))
{
citem.IsRecurrence = true;
}
else
{
citem.IsRecurrence = false;
}
citem.CalendarType = Convert.ToInt32(SPCalendarType.Gregorian);
collection.Add(citem);
}
}
else
{
citem = new SPCalendarItem();
citem.ItemID = item[“ID”].ToString();
try
{
citem.StartDate = DateTime.Parse(item[“EventDate”].ToString());
}
catch { }
try
{
citem.EndDate = DateTime.Parse(item[“EndDate”].ToString());
}
catch { }
temp = item[“Title”] as string;
temp += ” ” + item[“RecurrenceData”];
citem.Title = item[“Title”] as string;
temp = oList.ParentWebUrl + “/” + oList.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url;
citem.DisplayFormUrl = temp.Replace(“//”, “/”);
citem.Description = item[“Description”] as string;
if (bool.Parse(item[“Recurrence”].ToString()))
{
citem.IsRecurrence = true;
}
else
{
citem.IsRecurrence = false;
}
citem.CalendarType = Convert.ToInt32(SPCalendarType.Gregorian);
collection.Add(citem);
}
}
}
// Query recurrence data
SPQuery queryRecurrence = new SPQuery();
queryRecurrence.ExpandRecurrence = true;
queryRecurrence.Query = “<Where>” +
“<And>” +
“<Eq>” +
“<FieldRef Name=’Location’ />” +
“<Value Type=’Text’>” + Organizer + “</Value>” +
“</Eq>” +
“<And>” +
“<Eq>” +
“<FieldRef Name=’fRecurrence’ />” +
“<Value Type=’Recurrence’>1</Value>” +
“</Eq>” +
“<DateRangesOverlap>” +
“<FieldRef Name=’EventDate’ />” +
“<FieldRef Name=’EndDate’ />” +
“<FieldRef Name=’RecurrenceID’ />” +
“<Value Type=’DateTime’>” +
“<Month />” +
“</Value>” +
“</DateRangesOverlap>” +
“</And>” +
“</And>” +
“</Where>” +
“<ViewFields>” +
“<FieldRef Name=’Title’ />” +
“<FieldRef Name=’EventDate’ />” +
“<FieldRef Name=’EndDate’ />” +
“<FieldRef Name=’fRecurrence’ />” +
“<FieldRef Name=’Absentee’ />” +
“</ViewFields>”;
// Look forward from the beginning of the current month
DateTime calendarDate = DateTime.Today;
if (!string.IsNullOrEmpty(Page.Request[“CalendarDate”]))
DateTime.TryParse(Page.Request[“CalendarDate”], out calendarDate);
queryRecurrence.CalendarDate = new DateTime(calendarDate.Year, calendarDate.Month, 1);
// Returns all items (including recurrence instances) that
// would appear in the calendar view for the current month
SPListItemCollection calendarItems = oList.GetItems(queryRecurrence);
foreach (SPListItem listItem in oList.GetItems(queryRecurrence))
{
SPCalendarItem calItem = new SPCalendarItem();
calItem.ItemID = listItem[“Edit Menu Table End”].ToString();
calItem.Title = listItem[“Title”].ToString();
calItem.CalendarType = Convert.ToInt32(SPCalendarType.Gregorian);
calItem.StartDate = (DateTime)listItem[“Start Time”];
if (listItem[“End Time”] != null)
{
calItem.hasEndDate = true;
calItem.EndDate = (DateTime)listItem[“End Time”];
}
else
calItem.hasEndDate = false;
if (listItem[“Description”] != null)
calItem.Description = listItem[“Description”].ToString();
if (listItem[“Location”] != null)
calItem.Location = listItem[“Location”].ToString();
temp = “”;
temp = oList.ParentWebUrl + “/” + oList.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url;
calItem.DisplayFormUrl = temp.Replace(“//”, “/”);
collection.Add(calItem);
}
return collection;
} |