private static WatermarkMap GetVectorToFilterRelocationData(ADRawEntry org)
        {
            WatermarkMap watermarkMap = WatermarkMap.Empty;

            byte[] array = (byte[])org[TenantRelocationRequestSchema.TenantRelocationCompletionTargetVector];
            if (array != null)
            {
                try
                {
                    watermarkMap = WatermarkMap.Parse(array);
                }
                catch (FormatException arg)
                {
                    ExTraceGlobals.BackSyncTracer.TraceError <ADObjectId, FormatException>((long)SyncConfiguration.TraceId, "TenantRelocationProcessor::GetVectorToFilterRelocationData - Error parsing relocation completion vector tenant {0}. Error {1}.", org.Id, arg);
                }
            }
            ExTraceGlobals.BackSyncTracer.TraceDebug <ADObjectId, string>((long)SyncConfiguration.TraceId, "TenantRelocationProcessor::GetVectorToFilterRelocationData - Relocation completion vector found for tenant {0} is:\\n{1}.", org.Id, watermarkMap.SerializeToString());
            return(watermarkMap);
        }
Example #2
0
 public static bool TryFromBytes(byte[] cookieData, out SyncCookie cookie, out Exception ex)
 {
     ex     = null;
     cookie = null;
     if (cookieData == null)
     {
         ex = new ArgumentNullException("cookieData");
         return(false);
     }
     try
     {
         string   @string = Encoding.UTF8.GetString(cookieData);
         string[] array   = @string.Split(new string[]
         {
             SyncCookie.Delimiter
         }, StringSplitOptions.None);
         if (array.Length < 1)
         {
             ex = new InvalidCookieException();
             return(false);
         }
         int num = int.Parse(array[0]);
         if (num != 1 && num != 2 && num != 3)
         {
             ex = new CookieVersionUnsupportedException(num);
             return(false);
         }
         if (((num == 1 || num == 2) && array.Length != 5) || (num == 3 && array.Length != 6))
         {
             ex = new InvalidCookieException();
             return(false);
         }
         Guid         guid         = new Guid(array[1]);
         WatermarkMap watermarkMap = WatermarkMap.Empty;
         if (num == 1)
         {
             long value = long.Parse(array[2]);
             watermarkMap.Add(guid, value);
         }
         else
         {
             watermarkMap = WatermarkMap.Parse(array[2]);
         }
         WatermarkMap watermarkMap2 = WatermarkMap.Empty;
         if (num == 1)
         {
             long value2 = long.Parse(array[3]);
             watermarkMap2.Add(guid, value2);
         }
         else
         {
             watermarkMap2 = WatermarkMap.Parse(array[3]);
         }
         byte[] pageCookie = null;
         if (!string.IsNullOrEmpty(array[4]))
         {
             pageCookie = Convert.FromBase64String(array[4]);
         }
         byte[] pageCookie2 = null;
         if (num == 3 && !string.IsNullOrEmpty(array[5]))
         {
             pageCookie2 = Convert.FromBase64String(array[5]);
         }
         cookie = new SyncCookie(guid, watermarkMap, watermarkMap2, pageCookie, pageCookie2);
     }
     catch (DecoderFallbackException innerException)
     {
         ex = new InvalidCookieException(innerException);
         return(false);
     }
     catch (FormatException innerException2)
     {
         ex = new InvalidCookieException(innerException2);
         return(false);
     }
     catch (OverflowException innerException3)
     {
         ex = new InvalidCookieException(innerException3);
         return(false);
     }
     return(true);
 }