如何使用Exchange Web Service獲取日歷(包含循環會議)


本文介紹如何使用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
          }

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM