public ItemType[] FindItemsWithFAST(BaseFolderIdType parentFolderId, ItemResponseShapeType itemShape, FieldOrderType[] sortOrder, QueryStringType queryString) { FindItemType findItemType = new FindItemType { ItemShape = EwsAuditClient.IdOnlyItemShape, ParentFolderIds = new BaseFolderIdType[] { parentFolderId }, Traversal = ItemQueryTraversalType.Shallow, QueryString = queryString, SortOrder = sortOrder }; return(this.InternalFindItems(findItemType, itemShape)); }
public ItemType[] FindItems(BaseFolderIdType parentFolderId, ItemResponseShapeType itemShape, FieldOrderType[] sortOrder, RestrictionType restriction) { FindItemType findItemType = new FindItemType { ItemShape = EwsAuditClient.IdOnlyItemShape, ParentFolderIds = new BaseFolderIdType[] { parentFolderId }, Traversal = ItemQueryTraversalType.Shallow, Restriction = restriction, SortOrder = sortOrder }; return(this.InternalFindItems(findItemType, itemShape)); }
private ResponseMessageType[] GetFolderItems(ExchangeServiceBinding svc, DistinguishedFolderIdNameType folder) { // Form the FindItem request. FindItemType findItemRequest = new FindItemType(); findItemRequest.Traversal = ItemQueryTraversalType.Shallow; // Define which item properties are returned in the response. ItemResponseShapeType itemProperties = new ItemResponseShapeType(); itemProperties.BaseShape = DefaultShapeNamesType.AllProperties; //Define propriedade que armazena antigo ID PathToExtendedFieldType netShowUrlPath = new PathToExtendedFieldType(); netShowUrlPath.PropertyTag = "0x3A4D"; netShowUrlPath.PropertyType = MapiPropertyTypeType.String; //Adiciona propriedade na busca itemProperties.AdditionalProperties = new BasePathToElementType[1]; itemProperties.AdditionalProperties[0] = netShowUrlPath; // Add properties shape to the request. findItemRequest.ItemShape = itemProperties; // Identify which folders to search to find items. DistinguishedFolderIdType[] folderIDArray = new DistinguishedFolderIdType[2]; folderIDArray[0] = new DistinguishedFolderIdType(); folderIDArray[0].Id = folder; // Add folders to the request. findItemRequest.ParentFolderIds = folderIDArray; // Send the request and get the response. FindItemResponseType findItemResponse = svc.FindItem(findItemRequest); // Get the response messages. ResponseMessageType[] rmta = findItemResponse.ResponseMessages.Items; return(rmta); }
/// <summary> /// Gets the nr of items in a given folder /// </summary> /// <returns></returns> public long GetNrItemsInFolder(ChannelFolder folder) { var binding = ChannelHelper.BuildChannel(hostname, username, password); var findItemRequest = new FindItemType { Traversal = ItemQueryTraversalType.Shallow }; var itemProperties = new ItemResponseShapeType { BaseShape = DefaultShapeNamesType.AllProperties }; findItemRequest.ItemShape = itemProperties; var folderIdArray = new DistinguishedFolderIdType[2]; folderIdArray[0] = new DistinguishedFolderIdType { Id = DistinguishedFolderIdNameType.inbox }; findItemRequest.ParentFolderIds = folderIdArray; FindItemResponseType findItemResponse = binding.FindItem(findItemRequest); // Determine whether the request was a success. if (findItemResponse.ResponseMessages.Items[0].ResponseClass == ResponseClassType.Error) { throw new Exception(findItemResponse.ResponseMessages.Items[0].MessageText); } var responseMessage = (FindItemResponseMessageType)findItemResponse.ResponseMessages.Items[0]; var mailboxItems = (ArrayOfRealItemsType)responseMessage.RootFolder.Item; if (mailboxItems.Items == null) { return(0); } return(mailboxItems.Items.Length); }
/// <summary> /// Gets a list of all the items in the mailbox with all their properties. /// </summary> /// <returns></returns> public IEnumerable <MessageType> GetHeaders(ChannelFolder folder) { var binding = ChannelHelper.BuildChannel(hostname, username, password); var findItemRequest = new FindItemType { Traversal = ItemQueryTraversalType.Shallow }; var itemProperties = new ItemResponseShapeType { BaseShape = DefaultShapeNamesType.AllProperties }; findItemRequest.ItemShape = itemProperties; findItemRequest.ParentFolderIds = new BaseFolderIdType[] { new FolderIdType { Id = folder.FolderId } }; FindItemResponseType findItemResponse = binding.FindItem(findItemRequest); foreach (FindItemResponseMessageType responseMessage in findItemResponse.ResponseMessages.Items) { if (responseMessage.ResponseClass == ResponseClassType.Success) { ArrayOfRealItemsType mailboxItems = (ArrayOfRealItemsType)responseMessage.RootFolder.Item; if (mailboxItems.Items == null) { yield break; } foreach (MessageType inboxItem in mailboxItems.Items) { yield return(inboxItem); } } } }
/// <summary> /// Finds all Calendar Items for the current User's Mailbox. /// </summary> /// <returns></returns> //protected internal CalendarItemType[] FindCalendarItems() //{ // // Identify which folders to search. // DistinguishedFolderIdType[] parentFolderIds = new DistinguishedFolderIdType[1]; // parentFolderIds[0] = new DistinguishedFolderIdType(); // parentFolderIds[0].Id = DistinguishedFolderIdNameType.calendar; // return FindCalendarItems(parentFolderIds); //} protected internal CalendarItemType[] FindCalendarItems(DistinguishedFolderIdType[] parentFolderIds) { // Form the FindItem request. FindItemType findItemRequest = new FindItemType(); // Define the item properties that are returned in the response. ItemResponseShapeType itemProperties = new ItemResponseShapeType(); itemProperties.BaseShape = DefaultShapeNamesType.IdOnly; PathToUnindexedFieldType calendarIsRecurringFieldPath = new PathToUnindexedFieldType(); calendarIsRecurringFieldPath.FieldURI = UnindexedFieldURIType.calendarIsRecurring; PathToUnindexedFieldType calendarItemTypeFieldPath = new PathToUnindexedFieldType(); calendarIsRecurringFieldPath.FieldURI = UnindexedFieldURIType.calendarCalendarItemType; PathToUnindexedFieldType calendarStartFieldPath = new PathToUnindexedFieldType(); calendarStartFieldPath.FieldURI = UnindexedFieldURIType.calendarStart; PathToUnindexedFieldType calendarEndFieldPath = new PathToUnindexedFieldType(); calendarEndFieldPath.FieldURI = UnindexedFieldURIType.calendarEnd; //location //PathToUnindexedFieldType calendarLocation = new PathToUnindexedFieldType(); //calendarLocation.FieldURI = UnindexedFieldURIType.calendarLocation; //// body //PathToUnindexedFieldType itemBody = new PathToUnindexedFieldType(); //itemBody.FieldURI = UnindexedFieldURIType.itemBody; itemProperties.AdditionalProperties = new PathToUnindexedFieldType[] { calendarIsRecurringFieldPath, calendarItemTypeFieldPath, calendarStartFieldPath, calendarEndFieldPath }; findItemRequest.ItemShape = itemProperties; findItemRequest.ParentFolderIds = parentFolderIds; // Define the sort order of items. FieldOrderType[] fieldsOrder = new FieldOrderType[1]; fieldsOrder[0] = new FieldOrderType(); PathToUnindexedFieldType subjectOrder = new PathToUnindexedFieldType(); subjectOrder.FieldURI = UnindexedFieldURIType.calendarStart; fieldsOrder[0].Item = subjectOrder; fieldsOrder[0].Order = SortDirectionType.Ascending; findItemRequest.SortOrder = fieldsOrder; // Define the traversal type. findItemRequest.Traversal = ItemQueryTraversalType.Shallow; // Send the FindItem request and get the response. FindItemResponseType findItemResponse = Service.FindItem(findItemRequest); // Access the response message. ArrayOfResponseMessagesType responseMessages = findItemResponse.ResponseMessages; ResponseMessageType responseMessage = responseMessages.Items[0]; if (responseMessage is FindItemResponseMessageType) { FindItemResponseMessageType firmt = (responseMessage as FindItemResponseMessageType); FindItemParentType fipt = firmt.RootFolder; object obj = fipt.Item; if (obj is ArrayOfRealItemsType) { ArrayOfRealItemsType items = (obj as ArrayOfRealItemsType); if (items.Items != null) { List <CalendarItemType> calendarItems = new List <CalendarItemType>(items.Items.Length); foreach (ItemType item in items.Items) { CalendarItemType calendarItem = item as CalendarItemType; if (calendarItem != null) { calendarItems.Add(calendarItem); } } return(calendarItems.ToArray()); } return(new CalendarItemType[0]); } } return(null); }
// Token: 0x06000582 RID: 1410 RVA: 0x0002ACDC File Offset: 0x00028EDC public List <ElcEwsItem> GetItems(IList <ElcEwsItem> items) { GetItemType getItem = new GetItemType(); ItemResponseShapeType itemResponseShapeType = new ItemResponseShapeType(); itemResponseShapeType.BaseShape = DefaultShapeNamesType.Default; getItem.ItemShape = itemResponseShapeType; getItem.ItemIds = (from elcEwsItem in items select new ItemIdType { Id = elcEwsItem.Id }).ToArray <ItemIdType>(); List <ElcEwsItem> getItems = new List <ElcEwsItem>(getItem.ItemIds.Length); this.CallService(() => this.ServiceBinding.GetItem(getItem), delegate(ResponseMessageType responseMessage, int messageIndex) { ItemInfoResponseMessageType itemInfoResponseMessageType = (ItemInfoResponseMessageType)responseMessage; ElcEwsItem elcEwsItem = items[messageIndex]; if (itemInfoResponseMessageType.ResponseClass != ResponseClassType.Success) { ElcEwsClient.Tracer.TraceError <ResponseCodeType>(0L, "ElcEwsClient.GetItems: GetItem with error response message. ResponseCode : {0}", itemInfoResponseMessageType.ResponseCode); if (itemInfoResponseMessageType.ResponseCode == ResponseCodeType.ErrorItemNotFound) { getItems.Add(new ElcEwsItem { Id = elcEwsItem.Id, Data = null, Error = new ElcEwsException(ElcEwsErrorType.NotFound), StorageItemData = elcEwsItem.StorageItemData }); } else { getItems.Add(new ElcEwsItem { Id = elcEwsItem.Id, Data = null, Error = new ElcEwsException(ElcEwsErrorType.FailedToGetItem, itemInfoResponseMessageType.ResponseCode.ToString()), StorageItemData = elcEwsItem.StorageItemData }); } } else if (itemInfoResponseMessageType.Items != null && itemInfoResponseMessageType.Items.Items != null && itemInfoResponseMessageType.Items.Items.Length > 0) { getItems.Add(new ElcEwsItem { Id = itemInfoResponseMessageType.Items.Items[0].ItemId.Id, Data = null, Error = null, StorageItemData = elcEwsItem.StorageItemData }); } else { getItems.Add(new ElcEwsItem { Id = elcEwsItem.Id, Data = null, Error = new ElcEwsException(ElcEwsErrorType.NoItemReturned), StorageItemData = elcEwsItem.StorageItemData }); } return(true); }, (Exception exception) => ElcEwsClient.WrapElcEwsException(ElcEwsErrorType.FailedToGetItem, exception)); return(getItems); }
private ItemType[] InternalFindItems(FindItemType findItemType, ItemResponseShapeType itemShape) { if (itemShape == null) { itemShape = EwsAuditClient.DefaultItemShape; } List <ItemType> items = null; IEnumerable <BaseItemIdType> enumerable = this.InternalFindItemIds(findItemType); using (IEnumerator <BaseItemIdType> enumerator = enumerable.GetEnumerator()) { List <BaseItemIdType> list = new List <BaseItemIdType>(64); bool flag; do { flag = enumerator.MoveNext(); if (flag) { list.Add(enumerator.Current); } if (list.Count == 64 || (list.Count > 0 && !flag)) { GetItemType getItemType = new GetItemType { ItemShape = itemShape, ItemIds = list.ToArray() }; this.CallEwsWithRetries((LID)41148U, () => this.binding.GetItem(getItemType), delegate(ResponseMessageType responseMessage, int messageIndex) { ItemInfoResponseMessageType itemInfoResponseMessageType = responseMessage as ItemInfoResponseMessageType; if (itemInfoResponseMessageType != null && itemInfoResponseMessageType.ResponseClass == ResponseClassType.Success && itemInfoResponseMessageType.Items != null) { ItemType[] items = itemInfoResponseMessageType.Items.Items; foreach (ItemType item in items) { if (items == null) { items = new List <ItemType>(); } items.Add(item); } return(false); } return(false); }, delegate(ResponseMessageType responseMessage, int messageIndex) { if (responseMessage != null && responseMessage.ResponseClass == ResponseClassType.Error) { ResponseCodeType responseCode = responseMessage.ResponseCode; if (responseCode == ResponseCodeType.ErrorItemNotFound || responseCode == ResponseCodeType.ErrorMessageSizeExceeded) { return(true); } } return(false); }); list.Clear(); } }while (flag); } if (items != null && items.Count > 0) { return(items.ToArray()); } return(Array <ItemType> .Empty); }