コード例 #1
0
ファイル: Common.cs プロジェクト: v-zhonmi/Interop-TestSuites
        /// <summary>
        /// Get the items from successful response.
        /// </summary>
        /// <typeparam name="T">The type of item</typeparam>
        /// <param name="response">Response message from server.</param>
        /// <returns>Items contained in response.</returns>
        public static T[] GetItemsFromInfoResponse <T>(BaseResponseMessageType response)
            where T : ItemType, new()
        {
            T         itemReturnedByServer = null;
            ArrayList arrayOfItems         = new ArrayList();
            ArrayOfResponseMessagesType responseMessages = response.ResponseMessages;

            foreach (ResponseMessageType responseMessage in responseMessages.Items)
            {
                if (responseMessage.ResponseCode != ResponseCodeType.NoError ||
                    responseMessage.ResponseClass != ResponseClassType.Success)
                {
                    continue;
                }

                ItemInfoResponseMessageType itemRet = responseMessage as ItemInfoResponseMessageType;
                ArrayOfRealItemsType        aorit   = itemRet.Items;
                if (aorit.Items == null)
                {
                    continue;
                }

                foreach (ItemType tempItem in aorit.Items)
                {
                    itemReturnedByServer = tempItem as T;
                    arrayOfItems.Add(itemReturnedByServer);
                }
            }

            return((T[])arrayOfItems.ToArray(typeof(T)));
        }
コード例 #2
0
ファイル: Common.cs プロジェクト: v-zhonmi/Interop-TestSuites
        /// <summary>
        /// Get the items' id and change key from successful response.
        /// </summary>
        /// <param name="response">Response message from server.</param>
        /// <returns>Item ids contained in response.</returns>
        public static ItemIdType[] GetItemIdsFromInfoResponse(BaseResponseMessageType response)
        {
            ArrayList arrayOfItems = new ArrayList();
            ArrayOfResponseMessagesType responseMessages = response.ResponseMessages;

            foreach (ResponseMessageType responseMessage in responseMessages.Items)
            {
                if (responseMessage.ResponseCode != ResponseCodeType.NoError ||
                    responseMessage.ResponseClass != ResponseClassType.Success)
                {
                    continue;
                }

                ItemInfoResponseMessageType itemInfoResponseMessage = responseMessage as ItemInfoResponseMessageType;
                ArrayOfRealItemsType        arrayOfRealItemsType    = itemInfoResponseMessage.Items;
                if (arrayOfRealItemsType.Items == null)
                {
                    continue;
                }

                foreach (ItemType tempItem in arrayOfRealItemsType.Items)
                {
                    arrayOfItems.Add(tempItem.ItemId);
                }
            }

            return((ItemIdType[])arrayOfItems.ToArray(typeof(ItemIdType)));
        }
コード例 #3
0
        /// <summary>
        /// Отправляет электронное письмо
        /// </summary>
        /// <param name="subject">Тема письма</param>
        /// <param name="body">Текст письма</param>
        public static void SendMail(string subject, string body)
        {
            using (ExchangeServiceBinding bind = new ExchangeServiceBinding()) {
                bind.Credentials = new NetworkCredential(Username, Password, Domain);
                bind.Url         = "https://" + Host + "/EWS/Exchange.asmx";
                bind.RequestServerVersionValue         = new RequestServerVersion();
                bind.RequestServerVersionValue.Version = ExchangeVersionType.Exchange2007_SP1;

                CreateItemType createItemRequest =
                    new CreateItemType {
                    Items = new NonEmptyArrayOfAllItemsType(),
                    MessageDispositionSpecified = true,
                    MessageDisposition          = MessageDispositionType.SendOnly
                };

                MessageType message = new MessageType();
                message.ToRecipients    = new EmailAddressType[1];
                message.ToRecipients[0] = new EmailAddressType();
                message.ToRecipients[0].EmailAddress = ToRecipient;

                message.Subject = subject;

                message.Body           = new BodyType();
                message.Body.BodyType1 = BodyTypeType.Text;
                message.Body.Value     = body;

                createItemRequest.Items.Items    = new ItemType[1];
                createItemRequest.Items.Items[0] = message;

                CreateItemResponseType      createItemResponse = bind.CreateItem(createItemRequest);
                ArrayOfResponseMessagesType responseMessages   = createItemResponse.ResponseMessages;

                ResponseMessageType[] responseMessage = responseMessages.Items;
                foreach (ResponseMessageType rmt in responseMessage.Where(rmt => rmt.ResponseClass == ResponseClassType.Error))
                {
                    throw new Exception(rmt.MessageText);
                }
            }
        }
コード例 #4
0
        /// <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);
        }