public void TryParsePrimitive(object instance, bool isSuccess, object value) { var success = RedisValueExtractor.TryParsePrimitive(instance, out RedisValue result); Assert.AreEqual(isSuccess, success); Assert.AreEqual((RedisValue)(string)value, result); }
private IEnumerable <T> GetValues(RedisKey key, RedisValue[] values) { foreach (var value in values) { if (!value.HasValue) { log.LogDebug("{0} Redis value is null", key); yield break; } if (RedisValueExtractor.IsPrimitive <T>()) { yield return(RedisValueExtractor.SafeConvert <T>(value)); } else { var data = (byte[])value; if ((data == null) || (data.Length == 0)) { log.LogDebug("{0} Data length is zero", key); yield break; } yield return(serializer.Deserialize <T>(data)); } } }
private RedisValue GetValue(T instance) { if (!RedisValueExtractor.TryParsePrimitive(instance, out RedisValue redisValue)) { return(serializer.Serialize(instance)); } return(redisValue); }
public void Construct() { Assert.IsTrue(RedisValueExtractor.IsPrimitive <int>()); Assert.IsTrue(RedisValueExtractor.IsPrimitive <int?>()); Assert.IsTrue(RedisValueExtractor.IsPrimitive <bool>()); Assert.IsTrue(RedisValueExtractor.IsPrimitive <byte[]>()); Assert.IsTrue(RedisValueExtractor.IsPrimitive <string>()); Assert.IsFalse(RedisValueExtractor.IsPrimitive <Identity>()); }
public void TryParsePrimitiveComplex() { var success = RedisValueExtractor.TryParsePrimitive <int?>(1, out RedisValue result); Assert.AreEqual(true, success); Assert.AreEqual((RedisValue)1, result); success = RedisValueExtractor.TryParsePrimitive <int?>(null, out result); Assert.AreEqual(true, success); Assert.AreEqual(RedisValue.Null, result); }
public void SafeConvert() { var result = RedisValueExtractor.SafeConvert <int>(1); Assert.AreEqual(1, result); var resultString = RedisValueExtractor.SafeConvert <string>("1"); Assert.AreEqual("1", resultString); var resultBool = RedisValueExtractor.SafeConvert <bool>(true); Assert.AreEqual(true, resultBool); }
public void RegisterObjectHashSet <T>(IDataSerializer serializer, bool isWellKnown = false) where T : class { if (isWellKnown && RedisValueExtractor.IsPrimitive <T>()) { throw new ArgumentOutOfRangeException(nameof(isWellKnown), "Primitive type can't be well known "); } var serialization = new ObjectHashSetSerialization <T>(loggerFactory.CreateLogger <ObjectHashSetSerialization <T> >(), serializer, isWellKnown); var persistency = new ObjectListSerialization <T>(loggerFactory.CreateLogger <ObjectListSerialization <T> >(), link, serialization, new RedisSet(loggerFactory.CreateLogger <RedisSet>(), link, link.IndexManager), link.IndexManager); link.Register(persistency); }