コード例 #1
0
        private void RollbackObjectCookies(ForwardSyncCookieType type)
        {
            ForwardSyncCookieHeader[] array = this.cookieObjects[type];
            DateTime t   = this.dateTimeNow.Subtract(this.rollbackTimeSpan);
            int      num = array.Length - 1;

            while (num > 0 && array[num].Timestamp > t)
            {
                this.cookieSession.Delete(array[num--]);
            }
            this.cookiesUpdated = (num < array.Length - 1);
            if (num >= 0)
            {
                this.RollBackDivergences(type == ForwardSyncCookieType.CompanyIncremental, array[num].Timestamp);
            }
        }
コード例 #2
0
            public override CookieManager GetCookieManager(ForwardSyncCookieType cookieType, string serviceInstanceName, int maxCookieHistoryCount, TimeSpan cookieHistoryInterval)
            {
                SyncServiceInstance syncServiceInstance = ServiceInstanceId.GetSyncServiceInstance(serviceInstanceName);

                switch (cookieType)
                {
                case ForwardSyncCookieType.RecipientIncremental:
                    if (syncServiceInstance != null && syncServiceInstance.IsMultiObjectCookieEnabled)
                    {
                        return(new MsoMultiObjectCookieManager(serviceInstanceName, maxCookieHistoryCount, cookieHistoryInterval, cookieType));
                    }
                    return(new MsoRecipientMainStreamCookieManager(serviceInstanceName, maxCookieHistoryCount, cookieHistoryInterval));

                case ForwardSyncCookieType.CompanyIncremental:
                    if (syncServiceInstance != null && syncServiceInstance.IsMultiObjectCookieEnabled)
                    {
                        return(new MsoMultiObjectCookieManager(serviceInstanceName, maxCookieHistoryCount, cookieHistoryInterval, cookieType));
                    }
                    return(new MsoCompanyMainStreamCookieManager(serviceInstanceName, maxCookieHistoryCount, cookieHistoryInterval));

                default:
                    throw new InvalidOperationException("Cookie type not supported");
                }
            }
コード例 #3
0
        public static ForwardSyncCookieHeader[] LoadCookieHeaders(ITopologyConfigurationSession cookieSession, string serviceInstanceName, ForwardSyncCookieType cookieType)
        {
            ADObjectId serviceInstanceObjectId = SyncServiceInstance.GetServiceInstanceObjectId(serviceInstanceName);
            Container  container = cookieSession.Read <Container>(serviceInstanceObjectId.GetChildId("Cookies"));

            if (container != null)
            {
                ComparisonFilter          filter = new ComparisonFilter(ComparisonOperator.Equal, ForwardSyncCookieHeaderSchema.Type, cookieType);
                ForwardSyncCookieHeader[] array  = cookieSession.Find <ForwardSyncCookieHeader>(container.Id, QueryScope.OneLevel, filter, null, 0);
                Array.Sort <ForwardSyncCookieHeader>(array, (ForwardSyncCookieHeader x, ForwardSyncCookieHeader y) => DateTime.Compare(x.Timestamp, y.Timestamp));
                return(array);
            }
            return(new ForwardSyncCookieHeader[0]);
        }
コード例 #4
0
 internal MsoMultiObjectCookieManager(string serviceInstanceName, int maxCookieHistoryCount, TimeSpan cookieHistoryInterval, ForwardSyncCookieType cookieType) : base(serviceInstanceName, maxCookieHistoryCount, cookieHistoryInterval)
 {
     this.cookieSession             = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(false, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromRootOrgScopeSet(), 71, ".ctor", "f:\\15.00.1497\\sources\\dev\\data\\src\\directory\\Sync\\CookieManager\\MsoMultiObjectCookieManager.cs");
     this.cookieSession.UseConfigNC = false;
     this.cookieType          = cookieType;
     this.cookieRootContainer = MsoMultiObjectCookieManager.CreateOrGetRootContainer(serviceInstanceName, this.cookieSession);
     ForwardSyncCookieHeader[] source = MsoMultiObjectCookieManager.LoadCookieHeaders(this.cookieSession, serviceInstanceName, this.cookieType);
     this.cookieHeaderList = source.ToList <ForwardSyncCookieHeader>();
 }
コード例 #5
0
 public abstract CookieManager GetCookieManager(ForwardSyncCookieType cookieType, string serviceInstanceName, int maxCookieHistoryCount, TimeSpan cookieHistoryInterval);