说明:每一个字段的修改的要设置一遍, 将UnindexedFieldURIType.calendarViewType不知道可不可以只用一个对象;谁知到你分享一下 protected Hashtable UpdateItem(String userid, String Id, String changeKey) { Ex
说明:每一个字段的修改的要设置一遍, 将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; }