コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
                    }
                }
            }
        }