/// <summary> /// <see cref="RemoteProvider.CreateNewSyncItem"/> /// </summary> public override IRemoteItem CreateNewSyncItem(SyncItemSchema schema) { var value = new Exchange.EmailMessage(Service); var remoteItem = new ExchangeEmailMessage(schema, value, TimeZone); return(remoteItem); }
/// <summary> /// <see cref="ExchangeSyncProvider.LoadSyncItem(SyncItemSchema,string)"/> /// </summary> public override IRemoteItem LoadSyncItem(SyncItemSchema schema, string id) { ExchangeBase remoteItem = null; Exchange.EmailMessage fullEmail = ExchangeUtility.SafeBindItem <Exchange.EmailMessage>(Service, new Exchange.ItemId(id)); if (fullEmail != null) { remoteItem = new ExchangeEmailMessage(schema, fullEmail, TimeZone); } else { fullEmail = new Exchange.EmailMessage(Service); remoteItem = new ExchangeEmailMessage(schema, fullEmail, id, TimeZone) { State = SyncState.Deleted }; } return(remoteItem); }
/// <summary> /// Gets emails from <see cref="itemCollection"/> /// </summary> /// <param name="itemCollection">Finding list items from exchange.</param> /// <param name="activityFolderIds">List folders uniqueidentifier.</param> /// <returns></returns> public virtual IEnumerable <IRemoteItem> GetEmailsFromCollection(Exchange.FindItemsResults <Exchange.Item> itemCollection, List <Guid> activityFolderIds) { SyncItemSchema schema = FindSchemaBySyncValueName(typeof(ExchangeEmailMessage).Name); foreach (Exchange.Item item in itemCollection) { if (item is Exchange.EmailMessage) { Exchange.PropertySet properties = new Exchange.PropertySet(Exchange.BasePropertySet.IdOnly); Exchange.EmailMessage bindEmail = ExchangeUtility.SafeBindItem <Exchange.EmailMessage>(Service, item.Id, properties); if (bindEmail != null) { var remoteItem = new ExchangeEmailMessage(schema, bindEmail, TimeZone) { ActivityFolderIds = activityFolderIds }; yield return(remoteItem); } } } }