exchange webservices日程修改

14 篇文章 0 订阅

说明:每一个字段的修改的要设置一遍,   将UnindexedFieldURIType.calendarViewType不知道可不可以只用一个对象;谁知到你分享一下

protected Hashtable UpdateItem(String userid, String Id, String changeKey)

    {
        Exchange ec = new Exchange();
        Hashtable ht = new Hashtable();
        assistant.initESB(userid, ec);
        // Create calendar items to contain each non-deletion update.
        CalendarItemType updateAddress = new CalendarItemType();
        CalendarItemType updatesubject = new CalendarItemType();
        CalendarItemType updateBody = new CalendarItemType();
        CalendarItemType updateStartTime = new CalendarItemType();
        CalendarItemType updateEndTime = new CalendarItemType();
        //CalendarItemType updatestatus = new CalendarItemType();
        //CalendarItemType updateImportance = new CalendarItemType();
        //CalendarItemType updateType = new CalendarItemType();

        updateAddress.Location = Address.Text;
        updatesubject.Subject = EventName.Text;
        updateBody.Body = new BodyType();
        updateBody.Body.BodyType1 = BodyTypeType.Text;
        updateBody.Body.Value = Content.Text;
        updateStartTime.Start = Convert.ToDateTime(StartTime.Text);
        updateStartTime.StartSpecified = true;
        updateEndTime.End = Convert.ToDateTime(EndTime.Text);
        updateEndTime.EndSpecified = true;
        //updateStartTime.Start = Convert.ToDateTime(StartTime.Text);
        //updateEndTime.End = Convert.ToDateTime(EndTime.Text);

        PathToUnindexedFieldType modAddress = new PathToUnindexedFieldType();
        PathToUnindexedFieldType modsubject = new PathToUnindexedFieldType();
        PathToUnindexedFieldType modBody = new PathToUnindexedFieldType();
        PathToUnindexedFieldType modStartTime = new PathToUnindexedFieldType();
        PathToUnindexedFieldType modEndTime = new PathToUnindexedFieldType();

        modAddress.FieldURI = UnindexedFieldURIType.calendarLocation;
        modsubject.FieldURI = UnindexedFieldURIType.itemSubject;
        modBody.FieldURI = UnindexedFieldURIType.itemBody;
        modStartTime.FieldURI = UnindexedFieldURIType.calendarStart;
        modEndTime.FieldURI = UnindexedFieldURIType.calendarEnd;

        SetItemFieldType setAddress = new SetItemFieldType();
        SetItemFieldType setsubject = new SetItemFieldType();
        SetItemFieldType setBody = new SetItemFieldType();
        SetItemFieldType setStartTime = new SetItemFieldType();
        SetItemFieldType setEndTime = new SetItemFieldType();
        setAddress.Item = modAddress;
        setAddress.Item1 = updateAddress;
        setsubject.Item = modsubject;
        setsubject.Item1 = updatesubject;
        setBody.Item = modBody;
        setBody.Item1 = updateBody;
        setStartTime.Item = modStartTime;
        setStartTime.Item1 = updateStartTime;
        setEndTime.Item = modEndTime;
        setEndTime.Item1 = updateEndTime;
        // Create the identifier of the item to update.
        ItemIdType itemId = new ItemIdType();
        itemId.Id = Id;
        itemId.ChangeKey = changeKey;

        // Create and populate the request.
        UpdateItemType request = new UpdateItemType();
        request.ItemChanges = new ItemChangeType[1] { new ItemChangeType() };
        request.ItemChanges[0].Item = itemId;
        request.ItemChanges[0].Updates = new ItemChangeDescriptionType[5];
        request.ItemChanges[0].Updates[0] = setAddress;
        request.ItemChanges[0].Updates[1] = setsubject;
        request.ItemChanges[0].Updates[2] = setBody;
        request.ItemChanges[0].Updates[3] = setStartTime;
        request.ItemChanges[0].Updates[4] = setEndTime;


        request.ConflictResolution = ConflictResolutionType.AutoResolve;
        request.SendMeetingInvitationsOrCancellations = CalendarItemUpdateOperationType.SendToAllAndSaveCopy;
        request.SendMeetingInvitationsOrCancellationsSpecified = true;

        // Send the update request and receive the response.
        UpdateItemResponseType response = ec.exchangeServer.UpdateItem(request);
        ArrayOfResponseMessagesType aormt = response.ResponseMessages;
        ResponseMessageType[] rmta = aormt.Items;
        assistant.WriteFile("C:\\DEBUG.txt", rmta.Length.ToString());
        if(rmta.Length>0)
        foreach (ResponseMessageType rmt in rmta)
        {
            ItemInfoResponseMessageType respMsg = (rmt as ItemInfoResponseMessageType);
            if (null != respMsg && null != respMsg.Items && null != respMsg.Items.Items)
            foreach (ItemType item in respMsg.Items.Items)
            {
                    ht.Add(item.ItemId.Id, item.ItemId.ChangeKey);
                assistant.WriteFile("C:\\DEBUG.txt", item.ItemId.Id + "\n" + item.ItemId.ChangeKey);
            }
        }
        return ht;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值