public EncryptedValueProvider(IEncryptedConverter <T> encryptedConverter, IValueProvider innerProvider, T emptyValue = default, JsonSerializer serializer = null)
 {
     _encryptedConverter = encryptedConverter;
     _innerProvider      = innerProvider;
     _emptyValue         = emptyValue;
     _serializer         = serializer;
 }
Пример #2
0
 public EncryptedDictionaryValueProvider(
     IEncryptedConverter <Dictionary <TKey, TValue> > encryptedConverter,
     IValueProvider innerProvider,
     Dictionary <TKey, TValue> emptyValue,
     JsonSerializer serializer)
     : base(encryptedConverter, innerProvider, emptyValue, serializer)
 {
 }
 private IValueProvider ResolveEnumValueProvider(Type type, IEncryptedConverter converter, IValueProvider innerProvider)
 {
     return((IValueProvider)Activator.CreateInstance(
                typeof(EnumValueProvider <>).MakeGenericType(type),
                BindingFlags.Instance | BindingFlags.Public,
                binder: null,
                args: new object[] { converter, innerProvider },
                culture: null));
 }
        private IValueProvider ResolveArrayValueProvider(Type type, IEncryptedConverter converter, IValueProvider innerProvider)
        {
            var elementType = type.GetElementType();

            return((IValueProvider)Activator.CreateInstance(
                       typeof(EncryptedArrayValueProvider <>).MakeGenericType(elementType),
                       BindingFlags.Instance | BindingFlags.Public,
                       binder: null,
                       args: new object[] { converter, innerProvider, Array.CreateInstance(elementType, 0), new JsonSerializer() },
                       culture: null));
        }
        private IValueProvider ResolveDictionaryValueProvider(Type type, IEncryptedConverter converter, IValueProvider innerProvider)
        {
            var genericArgTypes = type.GenericTypeArguments;
            var defaultValue    = Activator.CreateInstance(
                typeof(Dictionary <,>).MakeGenericType(genericArgTypes),
                BindingFlags.Instance | BindingFlags.Public,
                binder: null,
                args: null,
                culture: null);

            return((IValueProvider)Activator.CreateInstance(
                       typeof(EncryptedDictionaryValueProvider <,>).MakeGenericType(genericArgTypes),
                       BindingFlags.Instance | BindingFlags.Public,
                       binder: null,
                       args: new object[] { converter, innerProvider, defaultValue, new JsonSerializer() },
                       culture: null));
        }
        private IValueProvider ResolveValueProvider(Type type, IEncryptedConverter converter, IValueProvider innerProvider)
        {
            if (_valueProviderFactories.TryGetValue(type, out var factory))
            {
                return(factory.Invoke(converter, innerProvider));
            }

            if (type.IsArray)
            {
                return(ResolveArrayValueProvider(type, converter, innerProvider));
            }

            if (type.IsIDictionary())
            {
                return(ResolveDictionaryValueProvider(type, converter, innerProvider));
            }

            if (type.IsEnum)
            {
                return(ResolveEnumValueProvider(type, converter, innerProvider));
            }

            return(ResolveGenericValueProvider(type, innerProvider));
        }
Пример #7
0
 public IntValueProvider(IEncryptedConverter <int> encryptedConverter, IValueProvider innerProvider)
     : base(encryptedConverter, innerProvider)
 {
 }
Пример #8
0
 public ShortValueProvider(IEncryptedConverter <short> encryptedConverter, IValueProvider innerProvider)
     : base(encryptedConverter, innerProvider)
 {
 }
Пример #9
0
 public SByteValueProvider(IEncryptedConverter <sbyte> encryptedConverter, IValueProvider innerProvider)
     : base(encryptedConverter, innerProvider)
 {
 }
Пример #10
0
 public ULongValueProvider(IEncryptedConverter <ulong> encryptedConverter, IValueProvider innerProvider)
     : base(encryptedConverter, innerProvider)
 {
 }
 public DoubleValueProvider(IEncryptedConverter <double> encryptedConverter, IValueProvider innerProvider)
     : base(encryptedConverter, innerProvider)
 {
 }
 public EnumValueProvider(IEncryptedConverter <T> encryptedConverter, IValueProvider innerProvider)
     : base(encryptedConverter, innerProvider)
 {
 }
Пример #13
0
 public StringValueProvider(IEncryptedConverter <string> encryptedConverter, IValueProvider innerProvider)
     : base(encryptedConverter, innerProvider, string.Empty)
 {
 }
Пример #14
0
 public ByteArrayValueProvider(IEncryptedConverter <byte[]> encryptedConverter, IValueProvider innerProvider)
     : base(encryptedConverter, innerProvider, Array.Empty <byte>())
 {
 }
Пример #15
0
 public GuidValueProvider(IEncryptedConverter <Guid> encryptedConverter, IValueProvider innerProvider)
     : base(encryptedConverter, innerProvider)
 {
 }
Пример #16
0
 public CharValueProvider(IEncryptedConverter <char> encryptedConverter, IValueProvider innerProvider)
     : base(encryptedConverter, innerProvider)
 {
 }
 public BoolValueProvider(IEncryptedConverter <bool> encryptedConverter, IValueProvider innerProvider)
     : base(encryptedConverter, innerProvider)
 {
 }
Пример #18
0
 public GenericValueProvider(IEncryptedConverter encryptedConverter, IValueProvider innerProvider, JsonSerializer serializer)
     : base(encryptedConverter, innerProvider, serializer)
 {
 }
 public DecimalValueProvider(IEncryptedConverter <decimal> encryptedConverter, IValueProvider innerProvider)
     : base(encryptedConverter, innerProvider)
 {
 }
 public DateTimeOffsetValueProvider(IEncryptedConverter <DateTimeOffset> encryptedConverter, IValueProvider innerProvider)
     : base(encryptedConverter, innerProvider)
 {
 }
Пример #21
0
 public FloatValueProvider(IEncryptedConverter <float> encryptedConverter, IValueProvider innerProvider)
     : base(encryptedConverter, innerProvider)
 {
 }
 /// <summary>
 /// Creates a new <see cref="JsonCryptionContractResolver"/> with the root <see cref="IDataProtectionProvider"/>
 /// </summary>
 /// <param name="dataProtectionProvider"></param>
 public JsonCryptionContractResolver(IDataProtectionProvider dataProtectionProvider)
 {
     _dataProtectionProvider = dataProtectionProvider;
     _converters             = new Dictionary <Type, IEncryptedConverter>();
     _genericConverter       = new GenericConverter(dataProtectionProvider.CreateProtector(typeof(GenericConverter).FullName));
 }
 public EncryptedArrayValueProvider(IEncryptedConverter <T[]> encryptedConverter, IValueProvider innerProvider, T[] emptyValue, JsonSerializer serializer)
     : base(encryptedConverter, innerProvider, emptyValue, serializer)
 {
 }