gpt4 book ai didi

C# exchange server 获取 session 室预约列表

转载 作者:行者123 更新时间:2023-12-04 23:01:57 24 4
gpt4 key购买 nike

我正在尝试使用 EWS Managed API 来获取 session 室列表,并为每个房间查看一周的预约列表。

我看到了Get room lists by using EWS in ExchangeGet appointments and meetings by using EWS in Exchange

我测试了第一个链接,我得到了 0 个房间。
同样对于第二个链接,它提供了当前用户日历但没有 session 。

我需要三样东西:

1) 获取组织中的 session 室列表。
2) 获取每个房间的 session 日历(X 天)。
3) 对于每次 session ,谁组织了 session 。

我找不到获取此信息的 API。

最佳答案

经过大量搜索并感谢this post我找到了问题 #1 和 #2 的答案

1) 获取组织中的所有 session 室:

 string filter = "(&(objectClass=*)(msExchRecipientDisplayType=7))";
//Assembly System.DirectoryServices.dll
DirectorySearcher search = new DirectorySearcher(filter);
List<AttendeeInfo> rooms = new List<AttendeeInfo>();
foreach (SearchResult result in search.FindAll())
{
ResultPropertyCollection r = result.Properties;
DirectoryEntry entry = result.GetDirectoryEntry();
// entry.Properties["displayName"].Value.ToString() will bring the room name
rooms.Add(new AttendeeInfo(entry.Properties["mail"].Value.ToString().Trim()));
}

2) 获取每个房间的 session 日历(2 天):

List<AttendeeInfo> attend = new List<AttendeeInfo>();
foreach (AttendeeInfo inf in rooms)
{
attend.Clear();
attend.Add(inf.SmtpAddress);

AvailabilityOptions options = new AvailabilityOptions();
options.MaximumSuggestionsPerDay = 48;
// service is ExchangeService object contains your authentication with exchange server
GetUserAvailabilityResults results = service.GetUserAvailability(attend, new TimeWindow(DateTime.Now, DateTime.Now.AddDays(2)), AvailabilityData.FreeBusyAndSuggestions, options);

foreach (AttendeeAvailability attendeeAvailability in results.AttendeesAvailability)
{
Console.WriteLine();
Console.WriteLine();
if (attendeeAvailability.ErrorCode == ServiceError.NoError)
{
foreach (Microsoft.Exchange.WebServices.Data.CalendarEvent calendarEvent in
attendeeAvailability.CalendarEvents)
{
Console.WriteLine("Calendar event");
Console.WriteLine(" Starttime: " + calendarEvent.StartTime.ToString());
Console.WriteLine(" Endtime: " + calendarEvent.EndTime.ToString());
if (calendarEvent.Details != null)
{
Console.WriteLine(" Subject:" + calendarEvent.Details.Subject);

}
}
}
}
}

关于问题 #3,获取此信息并不简单,因为它是私有(private)信息,作为普通用户,您无权查看它。

关于C# exchange server 获取 session 室预约列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42535585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com