GetUserAvailabilityRequestType 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
类 GetUserAvailabilityRequestType 表示获取用户可用性信息的作。
public ref class GetUserAvailabilityRequestType : ExchangeWebServices::BaseRequestType
public class GetUserAvailabilityRequestType : ExchangeWebServices.BaseRequestType
Public Class GetUserAvailabilityRequestType
Inherits BaseRequestType
- 继承
示例
下面的代码示例演示了包含以下元素的 GetUserAvailability 查询:
- 包含当前和明天的忙/闲数据的时间窗口。
- 请求提供有关每个邮箱的日历事件的详细和合并的忙/闲信息。 此示例显示了一个详细信息请求。 但是,根据调用方查看其他邮箱的日历信息的权限,返回的实际信息可能会有所不同。
- 返回合并的忙/闲数据的已定义间隔;在本例中为 30 分钟。 如果未请求合并的忙/闲数据,则会忽略这一点。
- 阈值定义指出,75% 的与会者免费的任何建议会议时间都被视为良好的会议时间。
- 建议的会议时间窗口,包括今天和明天。
- 定义为每天建议的会议时间的非工作时间上限数;在本例中为 2。
- 每天建议的会议次数上限;在本例中为 10。
- 建议的会议时间跨度为 30 分钟。
- 最短会议质量时间为“良好”。
- 四个邮箱,用于查询忙/闲信息和建议的会议时间。
- 在太平洋Standard时间 (PST) 时区具有区域设置并遵循夏令时的客户端应用程序。
代码示例返回每个邮箱的忙/闲信息,使调用方有权查看该数据。 它还返回一组按天组织的建议会议时间,并指示已标识邮箱帐户的可用性。
static void GetUserAvailability(ExchangeServiceBinding esb)
{
// Identify the options for comparing free/busy information.
FreeBusyViewOptionsType fbViewOptions = new FreeBusyViewOptionsType();
fbViewOptions.TimeWindow = new Duration();
fbViewOptions.TimeWindow.StartTime = DateTime.Today;
fbViewOptions.TimeWindow.EndTime = DateTime.Today.AddDays(2);
fbViewOptions.RequestedView = FreeBusyViewType.DetailedMerged;
fbViewOptions.RequestedViewSpecified = true;
fbViewOptions.MergedFreeBusyIntervalInMinutes = 30;
fbViewOptions.MergedFreeBusyIntervalInMinutesSpecified = true;
// Define the suggestions view.
SuggestionsViewOptionsType sugViewOptions = new SuggestionsViewOptionsType();
sugViewOptions.GoodThreshold = 25;
sugViewOptions.GoodThresholdSpecified = true;
sugViewOptions.DetailedSuggestionsWindow = new Duration();
sugViewOptions.DetailedSuggestionsWindow.StartTime = DateTime.Today;
sugViewOptions.DetailedSuggestionsWindow.EndTime = DateTime.Today.AddDays(2);
sugViewOptions.MaximumNonWorkHourResultsByDay = 2;
sugViewOptions.MaximumNonWorkHourResultsByDaySpecified = true;
sugViewOptions.MaximumResultsByDay = 10;
sugViewOptions.MaximumResultsByDaySpecified = true;
sugViewOptions.MeetingDurationInMinutes = 30;
sugViewOptions.MeetingDurationInMinutesSpecified = true;
sugViewOptions.MinimumSuggestionQuality = SuggestionQuality.Good;
sugViewOptions.MinimumSuggestionQualitySpecified = true;
// Identify the user mailboxes for which to review free/busy data.
EmailAddress emailAddress0 = new EmailAddress();
EmailAddress emailAddress1 = new EmailAddress();
EmailAddress emailAddress2 = new EmailAddress();
EmailAddress emailAddress3 = new EmailAddress();
emailAddress0.Address = "user0@contoso.com";
emailAddress1.Address = "user1@contoso.com";
emailAddress2.Address = "user2@contoso.com";
emailAddress3.Address = "user3@contoso.com";
MailboxData[] mailboxes = new MailboxData[4];
mailboxes[0] = new MailboxData();
mailboxes[0].Email = emailAddress0;
mailboxes[0].ExcludeConflicts = false;
mailboxes[1] = new MailboxData();
mailboxes[1].Email = emailAddress1;
mailboxes[1].ExcludeConflicts = false;
mailboxes[2] = new MailboxData();
mailboxes[2].Email = emailAddress2;
mailboxes[2].ExcludeConflicts = false;
mailboxes[3] = new MailboxData();
mailboxes[3].Email = emailAddress3;
mailboxes[3].ExcludeConflicts = false;
// Make the request.
GetUserAvailabilityRequestType <span class="label">request</span> = new GetUserAvailabilityRequestType();
// Set the time zone of the request.
<span class="label">request</span>.TimeZone = new SerializableTimeZone();
<span class="label">request</span>.TimeZone.Bias = 480;
<span class="label">request</span>.TimeZone.StandardTime = new SerializableTimeZoneTime();
<span class="label">request</span>.TimeZone.StandardTime.Bias = 0;
<span class="label">request</span>.TimeZone.StandardTime.DayOfWeek = DayOfWeekType.Sunday.ToString();
<span class="label">request</span>.TimeZone.StandardTime.DayOrder = 1;
<span class="label">request</span>.TimeZone.StandardTime.Month = 11;
<span class="label">request</span>.TimeZone.StandardTime.Time = "02:00:00";
<span class="label">request</span>.TimeZone.DaylightTime = new SerializableTimeZoneTime();
<span class="label">request</span>.TimeZone.DaylightTime.Bias = -60;
<span class="label">request</span>.TimeZone.DaylightTime.DayOfWeek = DayOfWeekType.Sunday.ToString();
<span class="label">request</span>.TimeZone.DaylightTime.DayOrder = 2;
<span class="label">request</span>.TimeZone.DaylightTime.Month = 3;
<span class="label">request</span>.TimeZone.DaylightTime.Time = "02:00:00";
// Add the mailboxes to the request.
<span class="label">request</span>.MailboxDataArray = mailboxes;
// Add the free/busy view options to the request.
<span class="label">request</span>.FreeBusyViewOptions = fbViewOptions;
// Add the suggested view options to the request.
<span class="label">request</span>.SuggestionsViewOptions = sugViewOptions;
try
{
// Send the request and get the response.
GetUserAvailabilityResponseType response = esb.GetUserAvailability(<span class="label">request</span>);
// Access free/busy information.
if (response.FreeBusyResponseArray.Length < 1)
{
throw new Exception("No free/busy response data available.");
}
else
{
foreach (FreeBusyResponseType fbrt in response.FreeBusyResponseArray)
{
if (fbrt.ResponseMessage.ResponseClass == ResponseClassType.Error)
{
Console.WriteLine(string.Format("Error: {0}", fbrt.ResponseMessage.MessageText));
}
else
{
// TODO: Get the free/busy data and working hours.
FreeBusyView fbv = fbrt.FreeBusyView;
}
}
}
// Access suggested meeting times.
SuggestionDayResult[] sdra = response.SuggestionsResponse.SuggestionDayResultArray;
if (sdra.Length < 1)
{
throw new Exception("No suggested meeting times available.");
}
else
{
foreach (SuggestionDayResult sdr in sdra)
{
// TODO: Get the suggested meeting times for each day.
}
}
}
catch (Exception e)
{
// TODO: Error processing.
Console.WriteLine(e.Message);
}
}
注解
将邮箱添加到请求的顺序表示在响应中接收邮箱信息的顺序。
构造函数
| GetUserAvailabilityRequestType() |
构造 GetUserAvailabilityRequestType 函数初始化 类的 GetUserAvailabilityRequestType 实例。 |
属性
| FreeBusyViewOptions |
属性 FreeBusyViewOptions 获取或设置可用性查询的忙/闲视图选项。 除非未设置属性, SuggestionsViewOptions 否则此属性是可选的。 这是一个读/写属性。 |
| MailboxDataArray |
属性 MailboxDataArray 获取或设置要搜索可用性查询的邮箱列表。 |
| SuggestionsViewOptions |
属性 SuggestionsViewOptions 获取或设置可用性查询的会议建议信息的选项。 除非未设置属性, FreeBusyViewOptions 否则此属性是可选的。 这是一个读/写属性。 |
| TimeZone |
属性 TimeZone 获取或设置客户端的时区信息。 这包括标准时间和夏令时之间的转换。 |