Edit

Share via


UpdateDelegateType Class

Definition

The UpdateDelegateType class represents a request to update delegate settings on a mailbox.

public ref class UpdateDelegateType : ExchangeWebServices::BaseDelegateType
public class UpdateDelegateType : ExchangeWebServices.BaseDelegateType
Public Class UpdateDelegateType
Inherits BaseDelegateType
Inheritance

Examples

The following example shows you how to update delegate permissions on user1's account. User2 is granted the None permission level for the Calendar folder and is granted permission to view private items. User3 is granted Reviewer permissions for the Journal folder. Meeting requests are sent to the delegates and information about the request is sent to user1.

static void UpdateDelegate()
{
    // Set the version, credentials, and the Client Access server on ExchangeServiceBinding.
    ExchangeServiceBinding esb = new ExchangeServiceBinding();
    esb.RequestServerVersionValue = new RequestServerVersion();
    esb.RequestServerVersionValue.Version = ExchangeVersionType.Exchange2007_SP1;
    esb.Credentials = new NetworkCredential("username", "password", "domain");
    esb.Url = "https://FQDN/ews/exchange.asmx";

    // Create the request.
    UpdateDelegateType request = new UpdateDelegateType();

    // Identify the mailbox for which delegate settings will be updated.
    request.Mailbox = new EmailAddressType();
    request.Mailbox.EmailAddress = "user1@example.com";

    // Update delegate user permissions for user2.
    request.DelegateUsers = new DelegateUserType[3] { new DelegateUserType(), new DelegateUserType(), new DelegateUserType() };
    request.DelegateUsers[0].UserId = new UserIdType();
    request.DelegateUsers[0].UserId.PrimarySmtpAddress = "user2@example.com";
    request.DelegateUsers[0].DelegatePermissions = new DelegatePermissionsType();
    request.DelegateUsers[0].DelegatePermissions.CalendarFolderPermissionLevel = DelegateFolderPermissionLevelType.None;
    request.DelegateUsers[0].DelegatePermissions.CalendarFolderPermissionLevelSpecified = true;
    request.DelegateUsers[0].ViewPrivateItems = true;
    request.DelegateUsers[0].ViewPrivateItemsSpecified = true;

    // Update delegate user permissions.
    request.DelegateUsers[1].UserId = new UserIdType();
    request.DelegateUsers[1].UserId.PrimarySmtpAddress = "user3@example.com";
    request.DelegateUsers[1].DelegatePermissions = new DelegatePermissionsType();
    request.DelegateUsers[1].DelegatePermissions.JournalFolderPermissionLevel = DelegateFolderPermissionLevelType.Reviewer;
    request.DelegateUsers[1].DelegatePermissions.JournalFolderPermissionLevelSpecified = true;

    // Identify how meeting requests are handled.
    request.DeliverMeetingRequests = new DeliverMeetingRequestsType();
    request.DeliverMeetingRequests = DeliverMeetingRequestsType.DelegatesAndSendInformationToMe;
    request.DeliverMeetingRequestsSpecified = true;

    try
    {
        // Send the UpdateDelegate request and get the response.
        UpdateDelegateResponseMessageType response = esb.UpdateDelegate(request);
        DelegateUserResponseMessageType[] durmt = new DelegateUserResponseMessageType[] { };
        durmt = response.ResponseMessages;

        // Check each response message.
        foreach (DelegateUserResponseMessageType resp in durmt)
        {
            if (resp.ResponseClass == ResponseClassType.Success)
            {
                Console.WriteLine("Delegate user updated: " + resp.DelegateUser.UserId.DisplayName);
            }
            else if (resp.ResponseClass == ResponseClassType.Error)
            {
                Console.WriteLine("Error: " + resp.MessageText);
            }
            else
                Console.WriteLine("Warning: " + resp.MessageText);
        }
        Console.ReadLine();
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
        Console.ReadLine();
    }
}

Constructors

UpdateDelegateType()

The UpdateDelegateType constructor initializes a new instance of the UpdateDelegateType class.

Properties

DelegateUsers

The DelegateUsers property gets or sets a DelegateUserType array that represents the identities of delegates to update in a mailbox. This property is optional.

DeliverMeetingRequests

The DeliverMeetingRequests property gets or sets a DeliverMeetingRequestsType object that represents how meeting requests are handled between the delegate and the principal.

DeliverMeetingRequestsSpecified

The DeliverMeetingRequestsSpecified property gets or sets a Boolean value that specifies whether the DeliverMeetingRequests property is serialized into the Simple Object Access Protocol (SOAP) request.

Mailbox

The Mailbox property gets or sets an EmailAddressType object that represents a mail-enabled Active Directory directory service object.

(Inherited from BaseDelegateType)

Applies to