博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何使用Exchange Web Service获取日历(包含循环会议)
阅读量:6688 次
发布时间:2019-06-25

本文共 3041 字,大约阅读时间需要 10 分钟。

本文介绍如何使用EWS代理类调用Exchange的日历

(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          }

 

  

转载地址:http://qqzoo.baihongyu.com/

你可能感兴趣的文章
容器是实现操作系统虚拟化的一种途径
查看>>
详细介绍Java中的堆、栈和常量池
查看>>
Go环境变量
查看>>
用Doxygen优化Inkpad的模块关系
查看>>
Delphi 数据类型列表
查看>>
eclipse 创建maven Web项目
查看>>
Angular之父子路由
查看>>
llvm每日谈之三 如何创建一个LLVM工程
查看>>
高性能Web服务之tomcat基础应用详解(一)
查看>>
处理logs,进行分析web展示。
查看>>
8月第二周B2B类网站排名:金泉网跃升第四
查看>>
9月第3周游戏运营类网站/频道:91.com下降7位
查看>>
关于日期处理的工具类
查看>>
java注解 声明
查看>>
【编译打包】httpsqs-1.7-2.el6.src.rpm
查看>>
产品聚焦和市场细分
查看>>
linux下IPTABLES的一些配置
查看>>
Python虚拟环境:Vitualenv
查看>>
反思~~~~~~思绪有点乱
查看>>
jdk提供的并发容器
查看>>