private static WatermarkMap ParseWatermarks(string rawstring) { WatermarkMap empty = WatermarkMap.Empty; string[] array = rawstring.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); foreach (string text in array) { string[] array3 = text.Split(new string[] { ":" }, StringSplitOptions.None); if (array3.Length != 2) { throw new FormatException(); } Guid key = new Guid(array3[0]); long value = long.Parse(array3[1]); if (!empty.ContainsKey(key)) { empty.Add(key, value); } } return(empty); }
private static WatermarkMap FallbackWatermarks(WatermarkMap originalWatermarks, Guid originalInvocationId, Guid newInvocationId) { WatermarkMap watermarkMap = originalWatermarks; if (originalInvocationId != newInvocationId) { watermarkMap = WatermarkMap.Empty; long value = 0L; if (originalWatermarks.TryGetValue(newInvocationId, out value)) { watermarkMap.Add(newInvocationId, value); } } return(watermarkMap); }
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); }