2013-07-14 31 views
1

我想使用自定義擴展屬性進行獨特的預約以放入數據庫。我發現使用FindAppointments()所有的約會:使用EWS託管API 2.0爲現有約會綁定自定義擴展屬性

var appointments = _service.FindAppointments(WellKnownFolderName.Calendar, calendarView); 

,比我去使用foreach循環槽的所有約會:

foreach (var appointment in appointments) 

爲不具有擴展屬性的所有約會:

if (appointment.ExtendedProperties.Count <= 0) 

我綁定了一個自定義的擴展屬性,並設置了唯一的會議id(meetingId),我專門生成的uniqe int值:

var myPropertySetId = new Guid("{6C3A094F-C2AB-4D1B-BF3E-80D39BC79BD3}"); 
var extendedPropertyDefinition = new ExtendedPropertyDefinition(myPropertySetId, "RateTheMeetingId", MapiPropertyType.Integer); 
var bindedAppointment = Appointment.Bind(_service, appointment.Id, new PropertySet(extendedPropertyDefinition)); 
bindedAppointment.SetExtendedProperty(extendedPropertyDefinition, meetingId); 
bindedAppointment.Update(ConflictResolutionMode.AlwaysOverwrite); 

但它不工作,因爲比我搜索會議和嘗試輸出擴展屬性和價值我沒有得到結果,它沒有綁定。我的問題我做錯了什麼,你可以提供什麼其他soliutions給現有的約會自定義擴展屬性?順便說一句,即時通訊與MS Exchange服務器2010_SP2合作。

回答

4

看到我在這個職位的回答: Exchange Webservice Managed API - Find items by extended properties 我認爲你的問題是相當相似的。 「FindItems」方法不會加載任何自定義屬性。這就是爲什麼

if (appointment.ExtendedProperties.Count <= 0) 

總是如此,即使約會已經有您的自定義屬性。接下來的事情是,我建議你在DefaultExtendedPropertySet.PublicStrings中創建擴展屬性,而不是創建自己的GUID。我也嘗試過自己的指導,從來沒有正確的工作。

試試這樣說:

ExtendedPropertyDefinition def = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "RateTheMeetingId", MapiPropertyType.Integer); 

所以最後你的代碼應該是這樣的:

var appointments = _service.FindAppointments(WellKnownFolderName.Calendar, calendarView); 

ExtendedPropertyDefinition def = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "RateTheMeetingId", MapiPropertyType.Integer); 

PropertySet propset = new PropertySet(PropertySet.IdOnly); 
propset.Add(def); 

foreach (var appointment in appointments) 
{ 
    //appointment should already be binded, now load it 
    appointment.Load(propset); 
    object value = null; 
    if (item.TryGetProperty(def, out value)) 
    { 
     //Do something 
    } 
    else 
    { 
     //Add Property 
    } 
} 
+0

非常感謝您!你在我的應用中解決了我最大的問題:) – Erikas

相關問題