GetUserAvailabilityRequestType Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
A GetUserAvailabilityRequestType classe representa uma operação para obter as informações de disponibilidade de um usuário.
public ref class GetUserAvailabilityRequestType : ExchangeWebServices::BaseRequestType
public class GetUserAvailabilityRequestType : ExchangeWebServices.BaseRequestType
Public Class GetUserAvailabilityRequestType
Inherits BaseRequestType
- Herança
Exemplos
O exemplo de código a seguir mostra uma consulta GetUserAvailability que inclui os seguintes elementos:
- Uma janela de tempo para dados gratuitos/ocupados que inclui hoje e amanhã.
- Uma solicitação para informações detalhadas e mescladas e gratuitas sobre os eventos de calendário para cada caixa de correio. Este exemplo mostra uma solicitação de informações detalhadas. No entanto, as informações reais retornadas podem variar de acordo com os direitos do chamador para exibir as informações de calendário de outras caixas de correio.
- Um intervalo definido para o qual os dados livres/ocupados mesclados devem ser retornados; nesse caso, 30 minutos. Isso será ignorado se os dados livres/ocupados mesclados não forem solicitados.
- Uma definição de limite que afirma que qualquer hora de reunião sugerida em que 75% dos participantes são livres é considerada uma boa hora de reunião.
- Uma janela de horários de reunião sugeridos que inclui hoje e amanhã.
- Um número máximo definido de horas não trabalhos como horários de reunião sugeridos por dia; nesse caso, dois.
- Um número máximo de horas de reunião sugeridas por dia; nesse caso, 10.
- Um período de tempo para horários de reunião sugeridos de 30 minutos.
- Um tempo mínimo de qualidade de reunião de Bom.
- Quatro caixas de correio a serem consultadas para obter informações gratuitas/ocupadas e horários de reunião sugeridos.
- Um aplicativo cliente que tem uma localidade no fuso horário padrão do Pacífico (PST) e que observa o horário de verão.
O exemplo de código retorna as informações gratuitas/ocupadas para cada caixa de correio ao ponto de o chamador ter permissão para exibir esses dados. Ele também retorna um conjunto de horários de reunião sugeridos que são organizados por dia e indica a disponibilidade das contas de caixa de correio identificadas.
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);
}
}
Comentários
A ordem na qual as caixas de correio são adicionadas à solicitação representa a ordem na qual as informações da caixa de correio são recebidas na resposta.
Construtores
GetUserAvailabilityRequestType() |
O GetUserAvailabilityRequestType construtor inicializa uma instância da GetUserAvailabilityRequestType classe. |
Propriedades
FreeBusyViewOptions |
A FreeBusyViewOptions propriedade obtém ou define as opções de exibição gratuita/ocupada para uma consulta de disponibilidade. Essa propriedade é opcional, a menos que a SuggestionsViewOptions propriedade não esteja definida. Esta é uma propriedade de leitura/gravação. |
MailboxDataArray |
A MailboxDataArray propriedade obtém ou define a lista de caixas de correio para pesquisar uma consulta de disponibilidade. |
SuggestionsViewOptions |
A SuggestionsViewOptions propriedade obtém ou define as opções para informações de sugestão de reunião para uma consulta de disponibilidade. Essa propriedade é opcional, a menos que a FreeBusyViewOptions propriedade não esteja definida. Esta é uma propriedade de leitura/gravação. |
TimeZone |
A TimeZone propriedade obtém ou define as informações de fuso horário do cliente. Isso inclui a transição entre o horário padrão e o horário de verão. |