public bool StringSet(FileBasedKey key, FileBasedValue value, TimeSpan? expiry, When when) { if (ContainsKey(key) && when == When.NotExists) return false; if (expiry.HasValue) value = new FileBasedValueWithExpiry(value, DateTime.Now, expiry); this[key] = value; return true; }
private static void SetValueForKey(string key, FileBasedValue value) { using (var stream = new FileStream(MemoryFileFor(key), FileMode.Create)) { using (var writer = new StreamWriter(stream)) { var content = FileBasedValueSerializer.Serialize(value); writer.Write(content); } } }
private object Deserialize(FileBasedValue value, Type objectType) { if (value.IsNull) return null; var serializedSharedObject = Encoding.Default.GetBytes(value); return Serializer.Deserialize(serializedSharedObject, objectType); }
private async Task<object> DeserializeAsync(FileBasedValue value, Type objectType) { if (value.IsNull) return null; return await Task.Run(() => { var serializedSharedObject = Encoding.Default.GetBytes(value); return Serializer.Deserialize(serializedSharedObject, objectType); }); }
public static string Serialize(FileBasedValue value) { var valueWithExpiry = value as FileBasedValueWithExpiry; return valueWithExpiry != null ? String.Format( "{1}{0}{2}{0}{3}", FieldSeparator, valueWithExpiry.Value, valueWithExpiry.CreationTime.ToBinary(), valueWithExpiry.Expiry.GetValueOrDefault().TotalMilliseconds) : value.Value; }
public Task<bool> StringSetAsync(FileBasedKey key, FileBasedValue value, TimeSpan? expiry, When exists) { return Task.Run(() => StringSet(key, value, expiry, exists)); }