コード例 #1
0
    void ReadElementsFromXml(EwsServiceXmlReader reader)
    {
        if (this.ErrorCode == ServiceError.NoError)
        {
            this.delegateUserResponses = new Collection <DelegateUserResponse>();

            reader.Read();

            if (reader.IsStartElement(XmlNamespace.Messages, XmlElementNames.ResponseMessages))
            {
                int delegateUserIndex = 0;
                do
                {
                    reader.Read();

                    if (reader.IsStartElement(XmlNamespace.Messages, XmlElementNames.DelegateUserResponseMessageType))
                    {
                        DelegateUser delegateUser = null;
                        if (this.readDelegateUsers && (this.delegateUsers != null))
                        {
                            delegateUser = this.delegateUsers[delegateUserIndex];
                        }

                        DelegateUserResponse delegateUserResponse = new DelegateUserResponse(readDelegateUsers, delegateUser);

                        delegateUserResponse.LoadFromXml(reader, XmlElementNames.DelegateUserResponseMessageType);

                        this.delegateUserResponses.Add(delegateUserResponse);

                        delegateUserIndex++;
                    }
                }while (!reader.IsEndElement(XmlNamespace.Messages, XmlElementNames.ResponseMessages));
            }
        }
    }
コード例 #2
0
        static DelegateUserResponse updateDelegates(string del)
        {
            LogLine("Updating delegate permissions for user '" + del + "'");

            Mailbox             mailbox             = new Mailbox(del);
            DelegateInformation result              = service.GetDelegates(mailbox, true);
            Collection <DelegateUserResponse> resps = result.DelegateUserResponses;

            LogLine("Found " + resps.Count + " delegates for user '" + del + "'");
            foreach (DelegateUserResponse r in resps)
            {
                LogLine(r.Result.ToString());
            }

            // Create a list to hold the updated delegates.
            List <DelegateUser> updatedDelegates = new System.Collections.Generic.List <DelegateUser>();
            // Set the new permissions for the delegate.
            DelegateUser taskDelegate = new DelegateUser(discoverUser);

            taskDelegate.Permissions.CalendarFolderPermissionLevel = DelegateFolderPermissionLevel.Author;
            taskDelegate.Permissions.TasksFolderPermissionLevel    = DelegateFolderPermissionLevel.Author;

            updatedDelegates.Add(taskDelegate);

            Collection <DelegateUserResponse> response = service.UpdateDelegates(mailbox, MeetingRequestsDeliveryScope.DelegatesAndSendInformationToMe, updatedDelegates);
            DelegateUserResponse resp = null;

            foreach (DelegateUserResponse r in response)
            {
                resp = r;
                break;
            }

            return(resp);
        }
コード例 #3
0
        static void processCalendar(string usr)
        {
            usr = usr.Trim();
            int total = 0;
            int page  = 0;

            LogEnd();
            LogLine("Processing Calendar: '" + usr + "'");


            DelegateUserResponse res = updateDelegates(usr);

            if (res == null)
            {
                //LogLine(res.Result.ToString ());
                //throw new NotImplementedException("Not yet implemented");
            }
            else if (res.ErrorCode.ToString() != "")
            {
                LogError("Error updating delegate permissions");
                LogErrorLine(res.ErrorMessage, res.ErrorCode.ToString());
            }
            else
            {
                LogLine("Updated delegate permissions");

                LogExtraLine(res.Result.ToString());
            }
            FindItemsResults <Item> results;

            do
            {
                results = loadPage(usr, page++);
                if (results == null)
                {
                    LogLine("No appointments found for user '" + usr + "'");
                    continue;
                }
                LogLine("Page " + page + "(" + usr + "): " + results.Items.Count + " appointments.");
                turnPrivate(results);
                total += results.Items.Count;
            } while (Constants.DEBUG_PAGES > page && results != null && results.MoreAvailable);
            Program.total += total;
            LogLine("'" + usr + "' - processed " + total + " appointments.");
        }
コード例 #4
0
 public EWSException(string message, DelegateUserResponse response) : base(message)
 {
     DelegateResponse = response;
 }