AddDelegateType Class

Definition

The AddDelegateType class represents a request to add delegates to a mailbox.

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

Examples

The following example shows you how to give user2 delegate permissions on folders that are owned by user1. User2 is given Author-level permissions to user1's Calendar folder and Reviewer-level permissions to user1's Contacts folder. User2 will receive copies of meeting messages and will be able to view private items in user1's mailbox. Meeting requests will be sent to both user1 and user2.

static void AddDelegate()
{
    // 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.
    AddDelegateType request = new AddDelegateType();

    // Identify the mailbox to which a delegate user will be added.
    request.Mailbox = new EmailAddressType();
    request.Mailbox.EmailAddress = "user1@example.com";

    // Identify the delegate user and set delegate permissions.
    request.DelegateUsers = 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.Author;
    request.DelegateUsers[0].DelegatePermissions.CalendarFolderPermissionLevelSpecified = true;
    request.DelegateUsers[0].DelegatePermissions.ContactsFolderPermissionLevel = DelegateFolderPermissionLevelType.Reviewer;
    request.DelegateUsers[0].DelegatePermissions.ContactsFolderPermissionLevelSpecified = true;
    request.DelegateUsers[0].ReceiveCopiesOfMeetingMessages = true;
    request.DelegateUsers[0].ReceiveCopiesOfMeetingMessagesSpecified = true;
    request.DelegateUsers[0].ViewPrivateItems = true;
    request.DelegateUsers[0].ViewPrivateItemsSpecified = true;

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

    try
    {
        // Send the AddDelegate request and get the response.
        AddDelegateResponseMessageType response = esb.AddDelegate(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 added: " + 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

AddDelegateType()

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

Properties

DelegateUsers

The DelegateUsers property gets or sets a DelegateUserType array that represents the identities of delegates to add to a mailbox.

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