Esempio n. 1
0
 protected override void CopySingleMessage(MessageRec messageRec, IFolderProxy folderProxy, PropTag[] propTagsToExclude, PropTag[] excludeProps)
 {
     ExecutionContext.Create(new DataContext[]
     {
         new OperationDataContext("EasSourceMailbox.CopySingleMessage", OperationType.None),
         new EntryIDsDataContext(messageRec.EntryId)
     }).Execute(delegate
     {
         Add add;
         if (this.EasFolderCache.TryGetValue(messageRec.FolderId, out add))
         {
             EasFolderType easFolderType = add.GetEasFolderType();
             if (EasFolder.IsCalendarFolder(easFolderType))
             {
                 Properties calendarItemProperties = this.ReadCalendarItem(messageRec);
                 EasSourceMailbox.CopyCalendarItem(messageRec, calendarItemProperties, folderProxy);
                 return;
             }
             if (EasFolder.IsContactFolder(easFolderType))
             {
                 EasSourceMailbox.CopyContactItem(messageRec, folderProxy);
                 return;
             }
             SyncEmailUtils.CopyMimeStream(this, messageRec, folderProxy);
         }
     });
 }
Esempio n. 2
0
        private byte[] CreateItem(byte[] itemEntryId, byte[] folderEntryId, Func <string, string, string, byte[]> executeSync)
        {
            base.CheckDisposed();
            Add add;

            if (!base.EasFolderCache.TryGetValue(folderEntryId, out add))
            {
                MrsTracer.Provider.Warning("Source folder {0} doesn't exist", new object[]
                {
                    TraceUtils.DumpBytes(folderEntryId)
                });
                throw new EasObjectNotFoundException(EasMailbox.GetStringId(folderEntryId));
            }
            string arg     = EasSourceMailbox.ClientIdFromItemId(itemEntryId);
            string syncKey = base.GetPersistedSyncState(folderEntryId).SyncKey;

            return(executeSync(arg, syncKey, add.ServerId));
        }
Esempio n. 3
0
        void IReplayProvider.Send(SendAction action)
        {
            MrsTracer.Provider.Function("EasSourceMailbox.Send({0})", new object[]
            {
                action
            });
            string mimeString = null;

            using (MemoryStream memoryStream = new MemoryStream(action.Data))
            {
                using (StreamReader streamReader = new StreamReader(memoryStream, Encoding.UTF8))
                {
                    mimeString = streamReader.ReadToEnd();
                }
            }
            string clientId = EasSourceMailbox.ClientIdFromItemId(action.ItemId);

            base.EasConnectionWrapper.SendMail(clientId, mimeString);
        }