Laden...

Outlook 2007 Kalender DGV o.Ä. VS 2015 RC

Erstellt von Edzio vor 8 Jahren Letzter Beitrag vor 8 Jahren 2.248 Views
E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 8 Jahren
Outlook 2007 Kalender DGV o.Ä. VS 2015 RC

Hallo zusammen,
hat mir jemand einen guten einfachen tip,
wie ich in ein ganz normales Windows Form einen freigegeben Outlook-Kalender (Exchangeserver vorhanden)
abbilden kann,
einträge tätigen kann (neue eintragen, ändern, löschen)
automatisch aktualisiert...

Neuerdings habe ich das neue Visual Studio 2015 RC aufgespielt bekommen,
hier funktionieren manche Dinge nicht mehr von alten ähnlichen Themen, die man im Netz findet...

Danke im Voraus.

Gruß

W
195 Beiträge seit 2008
vor 8 Jahren

Lustiger Post: So nach dem Motto - mach mal meine Arbeit...

Einen 'einfachen' Tipp dazu wirst Du nicht finden. Du benötigts ein Calender-Control und musst via Outlook-API oder Exchange-API auf die Informationen der Kalender zugreifen.

Und nun viel Spass beim 'google'n...

E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 8 Jahren

Naja war doch eine normale Frage,
und es geht nicht darum ob jemand "meine Arbeit" macht.
Ich frage nach einem Tip von Leuten die Profis sind,
wie man am besten an die Sache herangehen kann...

Schickst du deinen Lehrling auch googeln wenn er nach einem Tip fragt?

Danke dennoch für die Stichworte.

16.806 Beiträge seit 2008
vor 8 Jahren

Ich versteh auch nicht ganz, was Du Dir für einen Tipp vorstellst.
Es gibt nichts fertiges von .NET, was Dir hier auch nur annähernd hilft.

Ich mein, wir helfen ja bei konkreten Problemen.
Aber das hört sich schon so ein wenig an wie: "Ich habe diese Anforderung, wie geht das jetzt? Ich bräuchte eine Anleitung." 😉

E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 8 Jahren

die Stichpunkte von wcseller sind schon in die Richtung wie ich es mir erst mal vorgestellt habe.
Nur immer diese Zusatz-Aussagen
wie
geh doch googeln
wir machen nicht deine Arbeit
...
nerven

Ich such, bevor ich hier etwas poste, nach Lösungen,
wenn ich nichts finde oder ich bei manchen Dingen nur Bahnhof verstehe (bin nicht Profi)
poste ich um Rat zu suchen...

Mein falls jemand soetwas ähnliches schon gemacht / gegoogelt hat und z.B. einen Link hat ist das auch ok.

Was komplett fertiges mit copy paste einfügen will ich auch nicht, dann weiß ich nicht mal was der Code alles so anstellt...

1.029 Beiträge seit 2010
vor 8 Jahren

Hi,

hm - habe sowas schon mal gemacht. Neben Calendar-Control ist für die Suche wahrscheinlich noch "ScheduleControl" nützlich. (Ein reiner Kalender bringt dir ja nichts)

Ob die frei verfügbaren Controls was taugen kann ich dir allerdings nicht sagen, da ich DevComponents nutze. (Auch kein professioneller - das war immerhin gut bezahlbar)

Zum Zugriff auf Termine: Sofern der Exchange ≥ 2007 ist kann man die EWS Managed API verwenden, die ziemlich schnell im Vergleich zu Outlook ist - zudem auch recht komfortabel.

LG

E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 8 Jahren

Morgen Taipi88,

danke für die Info,
dann versuch ich mal mein Glück 😃

Gruß

E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 8 Jahren

Hallo zusammen,

irgendwie check ich gerade was nicht mit der Erstellung eines Termins per EWS.

Ich habe eine eigene Mailbox und eine andere firmeninterne Mailbox, auf welche ich die Berechtigung besitze und diese auch im Outlook eingebunden habe.

Nun erstell ich ein Ereignis (keine Besprechung) mit Hilfe folgendes Codes:

 private void kalender_eintrag_erstellen()
        {

            ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
            service.AutodiscoverUrl("andere_mailbox@firma.de", RedirectionUrlValidationCallback);
            Appointment meeting = new Appointment(service);
            //service.TraceEnabled = true;
            //service.TraceFlags = TraceFlags.All;

            
            // Set the properties on the meeting object to create the meeting.
            meeting.Subject = projektnummer_aus_form1 + "--" + aktuelle_benutzer;
            meeting.Body = "Grobveranschlagte Arbeitszeit für das Projekt Seitens der Entwicklung/Konstruktion.\r\n" + 
                           "Diese Zeit kann jedoch variieren aufgrund sämtlicher Einflüsse wie (Fehlprojektierungen, Wartezeiten, Urlaubszeiten, Krankheitszeiten etc.)";
            //Zeit einstellen
            meeting.IsAllDayEvent = true;
            meeting.Start = DateTime.Now;
            meeting.End = meeting.Start.AddDays(5);

            //Erinnerung einstellen
            meeting.IsReminderSet = false;
            //meeting.ReminderMinutesBeforeStart = 60;

            // Send the meeting request
            meeting.Save(WellKnownFolderName.Calendar, SendInvitationsMode.SendToNone);
        }

Das komische ist, obwohl ich die andere firmeninterne Mailbox anspreche, bekomme ich dieses Ereignis in meine eigenen Mailbox gesetzt.
Wie bekomme ich dieses Ereignis nur in die andere Mailbox?

Ich habe über das Outlook Kategorien erzeugt (Farbe + Name)
kann ich die Kategorien je nach Name dem Ereignis zuteilen?

Danke im Voraus.

Gruß

1.029 Beiträge seit 2010
vor 8 Jahren

Hi,

da musst du noch etwas nacharbeiten.

Prinzipiell bist du als User mit deinen DefaultCredentials angemeldet - deine AutoDiscoverUrl entscheidet hier letztendlich nur mit welchem Server du kommunizierst.

Prinzipiell hast du nun 3 Optionen:
a) Du meldest dich tatsächlich als ein anderer Benutzer an
b) Du verwendet Delegation (siehe Beispiel: https://msdn.microsoft.com/EN-US/library/office/gg274408(v=exchg.80).aspx)
c) Du verwendest Impersonation (muss erst aktiviert werden und scheint generell aufwändig)

LG

E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 8 Jahren

Hallo Taipi88,

danke dir.
Werde deine Vorschläge ausprobieren.

Gruß

E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 8 Jahren

ja perfekt
nur eine Zeile angepasst 😃

 meeting.Save(new FolderId(WellKnownFolderName.Calendar, "andere_mailbox@firma.de"));

Weißt du/ihr noch zufällig, wie ich einem Ereignis einer Kategorie, welche ich über das Outlook
angelegt habe, zuteile?
also z.B.:
Termin hat Farbe blau Text Wichtig

gibt es da bei dem EWS etwas in der Richtung
meeting.Categorie = Color.blue;

Gruß

1.029 Beiträge seit 2010
vor 8 Jahren

Hi,

über Farbe nur sehr indirekt - sofern du den Namen der Kategorie kennst kannst du diese aber über appointment.Categories.Add("name"); hinzufügen.

LG

E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 8 Jahren

Hi,
ok die Kategoriennamen kenn ich.
Die Farbe funktioniert auf diesem Weg 😃

Kann man die Kategorienliste nicht aus der Mailbox auslesen,
und so alle aktuellen Namen erhalten um diese dann zu setzen?

Würde Arbeit ersparen, wenn z.b. eine neue Kategorie im Outlook erzeugt wird.

Gruß

1.029 Beiträge seit 2010
vor 8 Jahren

Hi,

nimm's mir nicht übel - aber diese Frage beantwortest du bitte selbst mit der Google-Suche:
"ews get categories"...

LG

E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 8 Jahren

passt danke 😃
hast mir schon viel geholfen