// Token: 0x06001806 RID: 6150 RVA: 0x0008D4FC File Offset: 0x0008B6FC
        public Dictionary <string, StoreObjectId> Upgrade(Dictionary <string, FolderNode> folders, string synckeyIn, DeviceIdentity deviceIdentityIn, uint version, out Dictionary <string, StoreObjectType> contentTypeTable)
        {
            if (synckeyIn == null)
            {
                AirSyncDiagnostics.TraceDebug(ExTraceGlobals.TiUpgradeTracer, this, "Input to TiFolderSyncUpgrade.Upgrade is null: field synckeyIn");
                throw new ArgumentNullException("synckeyIn");
            }
            if (deviceIdentityIn == null)
            {
                AirSyncDiagnostics.TraceDebug(ExTraceGlobals.TiUpgradeTracer, this, "Input to TiFolderSyncUpgrade.Upgrade is null: field deviceIdentityIn");
                throw new ArgumentNullException("deviceIdentityIn");
            }
            this.deviceIdentity           = deviceIdentityIn;
            this.folderIdMappingSyncState = null;
            Dictionary <string, StoreObjectId> dictionary = new Dictionary <string, StoreObjectId>();

            try
            {
                this.LoadE12SyncState();
                this.folderHierarchySync = this.syncState.GetFolderHierarchySync();
                FolderSyncUpgrade folderSyncUpgrade = new FolderSyncUpgrade(this.mailboxSession.GetDefaultFolderId(DefaultFolderType.Root));
                dictionary = folderSyncUpgrade.Upgrade(this.folderHierarchySync, this.syncState, folders, out contentTypeTable);
                string text = synckeyIn;
                int    num  = text.LastIndexOf("}");
                if (num >= 0)
                {
                    text = text.Substring(num + 1, text.Length - num - 1);
                }
                if (text.Length > 0)
                {
                    int data = int.Parse(text, CultureInfo.InvariantCulture);
                    this.syncState[CustomStateDatumType.SyncKey] = new Int32Data(data);
                }
                this.UpdateMapping(dictionary);
                AirSyncSyncStateTypeFactory.EnsureSyncStateTypesRegistered();
                this.syncState[CustomStateDatumType.AirSyncProtocolVersion] = new Int32Data((int)version);
                this.folderIdMappingSyncState.Commit();
                if (folders != null)
                {
                    this.syncState.Commit();
                }
                contentTypeTable["EmailSyncFile"]    = StoreObjectType.Folder;
                contentTypeTable["ContactsSyncFile"] = StoreObjectType.ContactsFolder;
                contentTypeTable["CalendarSyncFile"] = StoreObjectType.CalendarFolder;
                contentTypeTable["TasksSyncFile"]    = StoreObjectType.TasksFolder;
            }
            finally
            {
                if (this.syncState != null)
                {
                    this.syncState.Dispose();
                }
            }
            return(dictionary);
        }
 internal CustomSyncStateInfo()
 {
     AirSyncSyncStateTypeFactory.EnsureSyncStateTypesRegistered();
 }