Asp.net Exchange Web服务按唯一id查找项目
我第一次开始使用MicrosoftExchangeWeb服务。我希望能够做到以下几点:Asp.net Exchange Web服务按唯一id查找项目,asp.net,exchange-server,exchangewebservices,Asp.net,Exchange Server,Exchangewebservices,我第一次开始使用MicrosoftExchangeWeb服务。我希望能够做到以下几点: 创建会议 更新会议 取消/删除会议 这些会议在ASP.NET MVC应用程序中创建,并保存到SQL Server数据库中。我只是希望将其与现场Exchange服务器集成。到目前为止,我能够使用以下代码创建会议: public static Task<string> CreateMeetingAsync(string from, List<string> to, string sub
- 创建会议
- 更新会议
- 取消/删除会议
public static Task<string> CreateMeetingAsync(string from, List<string> to, string subject, string body, string location, DateTime begin, DateTime end)
{
var tcs = new TaskCompletionSource<string>();
try
{
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);
service.Credentials = CredentialCache.DefaultNetworkCredentials;
//service.UseDefaultCredentials = true;
// I suspect the Service URL needs to be set from the user email address because this is then used to set the organiser
// of the appointment constructed below. The Organizer is a read-only field that cannot be manually set. (security measure)
service.AutodiscoverUrl(from);
//service.Url = new Uri(WebConfigurationManager.AppSettings["ExchangeServer"]);
Appointment meeting = new Appointment(service);
meeting.Subject = subject;
meeting.Body = "<span style=\"font-family:'Century Gothic'\" >" + body + "</span><br/><br/><br/>";
meeting.Body.BodyType = BodyType.HTML;
meeting.Start = begin;
meeting.End = end;
meeting.Location = location;
meeting.ReminderMinutesBeforeStart = 60;
foreach (string attendee in to)
{
meeting.RequiredAttendees.Add(attendee);
}
meeting.Save(SendInvitationsMode.SendToAllAndSaveCopy);
tcs.TrySetResult(meeting.Id.UniqueId);
}
catch (Exception ex)
{
tcs.TrySetException(ex);
}
return tcs.Task;
}
我不喜欢这个。有可能是用户在我的应用程序之外创建了一个会议,碰巧有相同的主题,下面是我的应用程序和取消它。我试图确定是否可以在查询字符串中使用唯一id,但这似乎不可行
我在上面的查询字符串页面上注意到,您可以搜索的最后一个属性是(未指定属性),它在“所有单词阶段属性”中搜索。因此,我尝试简单地将id放入查询中,但这不会返回任何结果:
FindItemsResults<Item> results = service.FindItems(WellKnownFolderName.Calendar, "AAMkADJhZDQzZWFmLWYxYTktNGI1Yi1iZTA5LWVmOTE3MmJiMGIxZgBGAAAAAAAqhOzrXRdvRoA6yPu9S/XnBwDXvBDBMebkTqUWix3HxZrnAAAA2LKLAAB5iS34oLxkSJIUht/+h9J1AAFlEVLAAAA=", view);
FindItemsResults=service.FindItems(WellKnownFolderName.Calendar,“aamkadjhzdqzzwfmlwyxyTktngi1izta5lwvmote3Mjimgixzgbgaaaaaaaqhozrxrdvroa6ypu9s/xnbwdxvbdbmebktqwixHzrnaaa2lklaab5is34olxxjuht/+h9J1AAFlEVLAAAA=”,视图);
使用约会.Bind
静态功能,提供服务对象和保存在数据库中的ItemId。了解会议工作流(邀请、接受、拒绝)可以使用新的ItemId在同一日历上重新创建会议。但是,如果您只是查看自己日历上的会议,您应该可以。使用约会.Bind
静态功能,提供服务对象和保存在数据库中的ItemId。了解会议工作流(邀请、接受、拒绝)可以使用新的ItemId在同一日历上重新创建会议。但是如果你只是在看你自己日历上的会议,你应该没事
FindItemsResults<Item> results = service.FindItems(WellKnownFolderName.Calendar, "AAMkADJhZDQzZWFmLWYxYTktNGI1Yi1iZTA5LWVmOTE3MmJiMGIxZgBGAAAAAAAqhOzrXRdvRoA6yPu9S/XnBwDXvBDBMebkTqUWix3HxZrnAAAA2LKLAAB5iS34oLxkSJIUht/+h9J1AAFlEVLAAAA=", view);