Frage

is there a way to search all users calendar (the are all in a distribution group) and show only the meetings, where they are the oranizers?

I am using impersonation.

With the following code I can get the organizer of a Meeting:

        //Instantiate the ExchangeService class+ Exchange Certificate Validation + Imparsonate
        ServicePointManager.ServerCertificateValidationCallback = CertificateValidationCallBack;
        ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
        service.Credentials = new NetworkCredential("user", "password", "domain");
        service.AutodiscoverUrl("user@domain", RedirectionUrlValidationCallback);

        //Distinguish Distribution Group
        string distributiongroup = "distributiongroup@domain";

        // Initialize values for the start and end time.
        DateTime startDate = DateTime.Now.AddMinutes(0);
        DateTime endDate = startDate.AddDays(1);

        //Extend the distribution group
        ExpandGroupResults distGroupMembers = service.ExpandGroup(distributiongroup);
        foreach (EmailAddress address in distGroupMembers.Members)
        {
            //Impersonate each distribution group member
            service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, address.Address);

            // Execute the search in the calendar folder and return the view
            CalendarView caledarView = new CalendarView(startDate, endDate);
            caledarView.PropertySet = new PropertySet(BasePropertySet.FirstClassProperties);
            FindItemsResults<Appointment> apt = service.FindAppointments(WellKnownFolderName.Calendar, caledarView);

            foreach (Item item in apt.Items)
            {
                ServiceResponseCollection<GetItemResponse> myColl = service.BindToItems(new[] { new ItemId(item.Id.UniqueId) }, caledarView.PropertySet);
                foreach (GetItemResponse temp in myColl)
                {
                    Appointment app = (Appointment)temp.Item;

                    string organizator = app.Organizer.Address;

                    Console.WriteLine(address + "\n" + app.Subject + " " + organizator);
                }
            }

My goal is to get only the meetings for every user, where he is the organizer.

Can you help me on this one?

Kind Regards Xristos

War es hilfreich?

Lösung

if (organizator == address.Address)

{ "do something" }

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top