如何使用Exchange Web Service获取日历(包含循环会议)
2013-01-27 08:30
441 查看
本文介绍如何使用EWS代理类调用Exchange的日历
(1)首先生成代理类
(2)定义请求的属性
请注意:在定义请求属性时,一定要定义CalendarViewType属性,默认的日历返回是不含循环日历的,
如果需要返回循环会议请求,就需要等译CalendarView
(3)定义服务器返回的数据属性
(1)首先生成代理类
ExchangeServiceBinding _ExchangeBinding = new ExchangeServiceBinding(); _ExchangeBinding.Credentials = new NetworkCredential(username, password, domain); _ExchangeBinding.Url = Helper.GetWebconfig("exchangewebservice");
(2)定义请求的属性
请注意:在定义请求属性时,一定要定义CalendarViewType属性,默认的日历返回是不含循环日历的,
如果需要返回循环会议请求,就需要等译CalendarView
FindItemType findItemRequest = new FindItemType(); ItemResponseShapeType itemProperties = new ItemResponseShapeType(); itemProperties.BaseShape = DefaultShapeNamesType.AllProperties; findItemRequest.ItemShape = itemProperties; //我们查找的是日历 DistinguishedFolderIdType[] folderIDs = { new DistinguishedFolderIdType { Id = DistinguishedFolderIdNameType.calendar } };
findItemRequest.ParentFolderIds = folderIDs; //增加搜索的日历范围,红色代码要饭服务器返回循环会议 CalendarViewType cldview = new CalendarViewType(); cldview.StartDate = dt.AddDays(-2); cldview.EndDate = dt.AddDays(2); findItemRequest.Item = cldview; findItemRequest.Traversal = ItemQueryTraversalType.Shallow;
(3)定义服务器返回的数据属性
FindItemResponseType findItemResponse = _ExchangeBinding.FindItem(findItemRequest); ArrayOfResponseMessagesType responseMessages = findItemResponse.ResponseMessages; ResponseMessageType[] responseMessage = responseMessages.Items; foreach (ResponseMessageType rmt in responseMessage) { #region 结果 FindItemResponseMessageType msgType = (rmt as FindItemResponseMessageType); if (msgType.RootFolder == null) continue; FindItemParentType parentType = msgType.RootFolder; object obj = parentType.Item; if (obj is ArrayOfRealItemsType) { ArrayOfRealItemsType items = (obj as ArrayOfRealItemsType); if (items != null) { if (items.Items != null) { foreach (ItemType item in items.Items) { CalendarItemType calItem = item as CalendarItemType; DataRow row = table.NewRow(); row["roomid"] = 1; row["guid"] = guid; row["begintime"] = calItem.Start.AddHours(timezone); row["endtime"] = calItem.End.AddHours(timezone); row["location"] = calItem.Location; row["title"] = calItem.Subject; row["displayname"] = calItem.Organizer.Item.Name; if (row["endtime"].ToString() != "") { table.Rows.Add(row); } } } } } #endregion }
相关文章推荐
- 如何使用Exchange Web Service Managed API获取公共文件夹日历(包括循环会议)
- 如何用Exchange WebService获取邮件的附件 (ZT)
- 使用webapck打包时如何使html中的图片也包含到包中
- 使用 EWS(Exchange Web Service)协议读取邮件、发送邮件
- AD域用户如何使用内网环境exchange服务器连接和同步邮箱、日历、联系人和任务
- Exchange Web Service (EWS) API 使用笔记
- 如何在使用 RemoteWebDriver 打开网页的同时获取 Http 状态码
- Exchange Web Service (EWS) API 使用笔记
- activity中如何获取service的运行状态? 使用startservice方式启动
- 如何用代码方式获取Web.config中system.serviceModel/client节点的address
- 如何在 Web 服务中使用 Service Data Objects 2.1 的动态数据 API
- 解决CXF WebService使用Hibernate双向oneToMany引起的循环对象异常:com.sun.istack.SAXException2: 在对象图中检测到循环。这将产生无限深的 XM
- 原创:Exchange协同办公之(-)使用用OWA日历组召开会议
- 使用Nginx反向代理后如何在web应用中获取用户IP
- 如何退出使用cin循环获取输入值
- C#如何HttpWebRequest模拟登陆,获取服务端返回Cookie以便登录请求后使用
- 使用nginx反向代理后如何在后台web应用中获取用户ip
- 什么是沙盒(sandbox)?沙盒包含哪些文件,描述每个文件的使用场景。如何获取这些文件的路径?如何获取应用程序包中文件的路径?
- 使用nginx后如何在web应用中获取用户ip及原理解释
- 如何使用C# WEBSERVICE 创建一个三层的数据库应用程序 http://www.xxju.net/article/200412/29_0004326567.htm