Question

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

Was it helpful?

Solution

if (organizator == address.Address)

{ "do something" }

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top