Autor Beitrag
Ollo
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 12.11.09 13:33 
Hallo,

vorneweg: ich bin mir nicht ganz sicher, ob das Thema in diese Kategorie passt (hab nichts passenderes gefunden). Wenn nicht, bitte verschieben.

So, nun zu meiner eigentlichen Frage:
Ich muss Termine aus unserem Öffenlichen Ordner (Outlook/Exchange) auslesen und auf einer ASP.Net Website darstellen.
Ich nutze dazu derzeit Microsoft.Office.Interop.Outlook.

Ich benötige jeweils die Termine der aktuellen Woche wobei ich bisher alle Termine auslese und nur die passenden darstelle. Das hat zur Folge das eine große Menge an Terminen ausgelesen wird, was wiederum die Darstellung der Webseite erheblich verlangsamt.

Das ganze sieht etwa so aus:
...
foreach (Outlook.AppointmentItem oAppt in oItems)
{
if ((oAppt.Start.DayOfYear >= (date.DayOfYear - offset)) && ((oAppt.Start.DayOfYear <= ((date.DayOfYear - offset) + 5)) && (oAppt.Start.Year == date.Year)))
{
Appointment a;
a.subject = oAppt.Subject;
a.start = oAppt.Start;
a.end = oAppt.End;
a.day = oAppt.Start.DayOfWeek.ToString();
list.Add(a);
}
}
...

Die bessere Lösung wäre es wohl die Abfrage selbst einzuschränken. Leider hab ich keine Ahnung wie das geht.

Hat von euch jemand eine Idee? Oder event. einen besseren Lösungsansatz?

Danke!
Ollo Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 12.11.09 14:29 
Hi,

hat sich erledigt. Wen's interessiert hier die Lösung:

Filter definieren:
string filter = "[Start] >= '09/11/2009 00:00 AM' and [End] <= '13/11/2009 00:00 AM'";

und die Abfrage mir der Methode "restricted" beschränken.
Outlook.Items oItems = oCalendar.Items.Restrict(filter);

mehr Info's unter:
support.microsoft.com/kb/310265/de

Warum findet man die Lösung eigentlich immer erst, wenn man die Frage schon geposted hat?

Murphy lässt grüßen.

Gruß
Ollo