// Token: 0x06000F33 RID: 3891 RVA: 0x0005ADA4 File Offset: 0x00058FA4
        private static void AddSplitStateDiagnostic(Guid mailbox, IPublicFolderSplitState splitState, XElement splitDiagnostic)
        {
            XElement xelement = new XElement("PublicFolderSplitState");

            xelement.Add(new XElement("MailboxGuid", mailbox.ToString()));
            xelement.Add(splitState.ToXElement());
            splitDiagnostic.Add(xelement);
        }
        // Token: 0x06000F83 RID: 3971 RVA: 0x0005BF6C File Offset: 0x0005A16C
        public IPublicFolderSplitState ReadFromStore(out Exception error)
        {
            IPublicFolderSplitState publicFolderSplitState = null;

            error = null;
            try
            {
                using (Folder folder = this.xsoFactory.BindToFolder(this.publicFolderSession, this.publicFolderSession.GetTombstonesRootFolderId()) as Folder)
                {
                    using (UserConfiguration configuration = UserConfiguration.GetConfiguration(folder, new UserConfigurationName("PublicFolderSplitState", ConfigurationNameKind.Name), UserConfigurationTypes.Stream))
                    {
                        using (Stream stream = configuration.GetStream())
                        {
                            if (stream.Length == 0L)
                            {
                                publicFolderSplitState = new PublicFolderSplitState();
                            }
                            else
                            {
                                try
                                {
                                    publicFolderSplitState = (SplitStateAdapter.Serializer.ReadObject(stream) as PublicFolderSplitState);
                                    if (publicFolderSplitState == null || publicFolderSplitState.VersionNumber != SplitStateAdapter.CurrentVersion)
                                    {
                                        publicFolderSplitState = new PublicFolderSplitState();
                                        this.logger.LogEvent(LogEventType.Verbose, string.Format("SplitStateAdapter::{0}::ReadFromStore - Unrecognized split state type for {1}", this.GetHashCode(), this.publicFolderSession.DisplayAddress));
                                    }
                                }
                                catch (SerializationException arg)
                                {
                                    publicFolderSplitState = new PublicFolderSplitState();
                                    this.logger.LogEvent(LogEventType.Verbose, string.Format("SplitStateAdapter::{0}::ReadFromStore - Received serialization exception for {1} - {2}", this.GetHashCode(), this.publicFolderSession.DisplayAddress, arg));
                                }
                            }
                        }
                    }
                }
            }
            catch (StorageTransientException ex)
            {
                error = ex;
            }
            catch (StoragePermanentException ex2)
            {
                error = ex2;
            }
            if (error != null)
            {
                this.logger.LogEvent(LogEventType.Verbose, string.Format("SplitStateAdapter::{0}::ReadFromStore - Error reading the split state for {1} - {2}", this.GetHashCode(), this.publicFolderSession.DisplayAddress, error));
            }
            return(publicFolderSplitState);
        }
        // Token: 0x06000F84 RID: 3972 RVA: 0x0005C160 File Offset: 0x0005A360
        public Exception SaveToStore(IPublicFolderSplitState splitState)
        {
            Exception ex = null;

            try
            {
                using (Folder folder = this.xsoFactory.BindToFolder(this.publicFolderSession, this.publicFolderSession.GetTombstonesRootFolderId()) as Folder)
                {
                    using (UserConfiguration configuration = UserConfiguration.GetConfiguration(folder, new UserConfigurationName("PublicFolderSplitState", ConfigurationNameKind.Name), UserConfigurationTypes.Stream))
                    {
                        using (Stream stream = configuration.GetStream())
                        {
                            SplitStateAdapter.Serializer.WriteObject(stream, splitState);
                            stream.SetLength(stream.Position);
                            configuration.Save();
                        }
                    }
                }
            }
            catch (SerializationException ex2)
            {
                ex = ex2;
            }
            catch (StorageTransientException ex3)
            {
                ex = ex3;
            }
            catch (StoragePermanentException ex4)
            {
                ex = ex4;
            }
            if (ex != null)
            {
                this.logger.LogEvent(LogEventType.Verbose, string.Format("SplitStateAdapter::{0}::ReadFromStore - Error writing the split state for {1} - {2}", this.GetHashCode(), this.publicFolderSession.DisplayAddress, ex));
            }
            return(ex);
        }
 // Token: 0x06000F5C RID: 3932 RVA: 0x0005B6FC File Offset: 0x000598FC
 internal PrepareTargetMailboxOperation(IPublicFolderSplitState splitState, IPublicFolderSession publicFolderSession, IPublicFolderMailboxLoggerBase logger, IAssistantRunspaceFactory powershellFactory, IXSOFactory xsoFactory) : base(PrepareTargetMailboxOperation.OperationName, publicFolderSession, splitState, logger, powershellFactory, splitState.PrepareTargetMailboxState, SplitProgressState.PrepareTargetMailboxStarted, SplitProgressState.PrepareTargetMailboxCompleted)
 {
     this.xsoFactory = xsoFactory;
 }
Exemplo n.º 5
0
 // Token: 0x06000E94 RID: 3732 RVA: 0x00057748 File Offset: 0x00055948
 internal IdentifyTargetMailboxOperation(IPublicFolderSplitState splitState, IPublicFolderSession publicFolderSession, IPublicFolderMailboxLoggerBase logger, IAssistantRunspaceFactory powershellFactory) : base(IdentifyTargetMailboxOperation.OperationName, publicFolderSession, splitState, logger, powershellFactory, splitState.IdentifyTargetMailboxState, SplitProgressState.IdentifyTargetMailboxStarted, SplitProgressState.IdentifyTargetMailboxCompleted)
 {
 }
Exemplo n.º 6
0
 // Token: 0x06000E8B RID: 3723 RVA: 0x00057438 File Offset: 0x00055638
 internal SplitOperationBase(string name, IPublicFolderSession publicFolderSession, IPublicFolderSplitState splitState, IPublicFolderMailboxLoggerBase logger, IAssistantRunspaceFactory powershellFactory, ISplitOperationState splitOperationState, SplitProgressState startState, SplitProgressState completionState)
 {
     this.name = name;
     this.publicFolderSession = publicFolderSession;
     this.splitState          = splitState;
     this.logger              = logger;
     this.powershellFactory   = powershellFactory;
     this.startState          = startState;
     this.completionState     = completionState;
     this.splitOperationState = splitOperationState;
 }
Exemplo n.º 7
0
 // Token: 0x06000F79 RID: 3961 RVA: 0x0005BAC0 File Offset: 0x00059CC0
 internal PrepareSplitPlanOperation(IPublicFolderSplitState splitState, IPublicFolderSession session, IPublicFolderMailboxLoggerBase logger, IAssistantRunspaceFactory powershellFactory, string splitScriptPath) : base(PrepareSplitPlanOperation.OperationName, session, splitState, logger, powershellFactory, splitState.PrepareSplitPlanState, SplitProgressState.PrepareSplitPlanStarted, SplitProgressState.PrepareSplitPlanCompleted)
 {
     this.splitPlanScriptPath = splitScriptPath;
 }
 // Token: 0x06000F66 RID: 3942 RVA: 0x0005B9F7 File Offset: 0x00059BF7
 public ISplitOperation CreateMoveContentOperation(IPublicFolderSplitState splitState)
 {
     return(new MoveContentOperation(splitState, this.publicFolderSession, this.logger, this.powershellFactory, this.xsoFactory));
 }
 // Token: 0x06000F65 RID: 3941 RVA: 0x0005B9D8 File Offset: 0x00059BD8
 public ISplitOperation CreatePrepareSplitPlanOperation(IPublicFolderSplitState splitState)
 {
     return(new PrepareSplitPlanOperation(splitState, this.publicFolderSession, this.logger, this.powershellFactory, SplitOperationFactory.SplitPlanScriptPath));
 }
 // Token: 0x06000F64 RID: 3940 RVA: 0x0005B9B8 File Offset: 0x00059BB8
 public ISplitOperation CreatePrepareTargetMailboxOperation(IPublicFolderSplitState splitState)
 {
     return(new PrepareTargetMailboxOperation(splitState, this.publicFolderSession, this.logger, this.powershellFactory, this.xsoFactory));
 }
 // Token: 0x06000F63 RID: 3939 RVA: 0x0005B99E File Offset: 0x00059B9E
 public ISplitOperation CreateIdentifyTargetMailboxOperation(IPublicFolderSplitState splitState)
 {
     return(new IdentifyTargetMailboxOperation(splitState, this.publicFolderSession, this.logger, this.powershellFactory));
 }