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)); } } }
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); }
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."); }
public EWSException(string message, DelegateUserResponse response) : base(message) { DelegateResponse = response; }