/// <summary> /// Gets the <see cref="IPropertyReflector"/> properties that make up the unique key (lazy-loaded and cached for performance). /// </summary> /// <param name="ier">The parent <see cref="IEntityReflector"/>.</param> /// <returns>The <see cref="IPropertyReflector"/> properties.</returns> public IPropertyReflector[] GetPropertyReflectors(IEntityReflector ier) { if (propertyReflectors != null) { return(propertyReflectors); } lock (_lock) { if (propertyReflectors == null) { var prs = new IPropertyReflector[Properties.Length]; for (int i = 0; i < Properties.Length; i++) { prs[i] = ier.GetProperty(Properties[i]); if (prs[i] == null) { // Special case where the unique key may be a reference data type; i.e. points to the 'NameSid' property. prs[i] = ier.GetProperty(Properties[i] + "Sid"); if (prs[i] == null) { throw new InvalidOperationException($"Type '{ier.Type.Name}' references a UniqueKey Property '{Properties[i]}' that does not exist."); } } } propertyReflectors = prs; } } return(propertyReflectors); }
public PutEntityHttpRequestFactory(IEntityReflector reflector, ISerializer serializer) { EnsureArg.IsNotNull(reflector, nameof(reflector)); Ensure.Any.IsNotNull(serializer, nameof(serializer)); Reflector = reflector; Serializer = serializer; }
public EntityResponseMaterializer(ISerializer serializer, IEntityReflector entityReflector) { Ensure.That(serializer, "serializer").IsNotNull(); Ensure.That(entityReflector, "entityReflector").IsNotNull(); Serializer = serializer; EntityReflector = entityReflector; }
public EntityResponseMaterializer(ISerializer serializer, IEntityReflector entityReflector) { Ensure.Any.IsNotNull(serializer, nameof(serializer)); Ensure.Any.IsNotNull(entityReflector, nameof(entityReflector)); Serializer = serializer; EntityReflector = entityReflector; }
public PutEntityHttpRequestFactory(IEntityReflector reflector, ISerializer serializer) { Ensure.That(reflector, "reflector").IsNotNull(); Ensure.That(serializer, "serializer").IsNotNull(); Reflector = reflector; Serializer = serializer; }
public DefaultSerializer(SerializationConfiguration configuration, IDocumentSerializationMetaProvider documentMetaProvider, IEntityReflector entityReflector = null) { Ensure.That(configuration, "configuration").IsNotNull(); Ensure.That(documentMetaProvider, "documentMetaProvider").IsNotNull(); Configuration = configuration; DocumentMetaProvider = documentMetaProvider; EntityReflector = entityReflector; InternalSerializer = JsonSerializer.Create(Configuration.Settings); }
public DefaultSerializer(SerializationConfiguration configuration, IDocumentSerializationMetaProvider documentMetaProvider, IEntityReflector entityReflector = null) { EnsureArg.IsNotNull(configuration, nameof(configuration)); EnsureArg.IsNotNull(documentMetaProvider, nameof(documentMetaProvider)); Configuration = configuration; DocumentMetaProvider = documentMetaProvider; EntityReflector = entityReflector; InternalSerializer = JsonSerializer.Create(Configuration.Settings); }
public DocumentJsonReader(TextReader reader, Type docType, IEntityReflector entityReflector) : base(reader) { EnsureArg.IsNotNull(docType, nameof(docType)); EnsureArg.IsNotNull(entityReflector, nameof(entityReflector)); DocType = docType; EntityReflector = entityReflector; Reader = reader; CloseInput = false; DocTypeInfo = docType.GetTypeInfo(); }
public Entities(IConnection connection, EntityResponseFactory entityResponseFactory, ISerializer serializer, IEntityReflector entityReflector) { Ensure.That(connection, "connection").IsNotNull(); Ensure.That(entityResponseFactory, "entityResponseFactory").IsNotNull(); Ensure.That(serializer, "serializer").IsNotNull(); Ensure.That(entityReflector, "entityReflector").IsNotNull(); Connection = connection; EntityResponseFactory = entityResponseFactory; Serializer = serializer; EntityReflector = entityReflector; }
public DocumentJsonReader(TextReader reader, Type docType, IEntityReflector entityReflector) : base(reader) { Ensure.That(docType, "docType").IsNotNull(); Ensure.That(entityReflector, "entityReflector").IsNotNull(); DocType = docType; EntityReflector = entityReflector; Reader = reader; CloseInput = false; DocTypeInfo = docType.GetTypeInfo(); }
public DocumentJsonWriter(TextWriter textWriter, DocumentSerializationMeta documentMeta, SerializationConventions conventions, IEntityReflector entityReflector) : base(textWriter) { EnsureArg.IsNotNull(documentMeta, nameof(documentMeta)); EnsureArg.IsNotNull(conventions, nameof(conventions)); EnsureArg.IsNotNull(entityReflector, nameof(entityReflector)); HasWrittenDocumentMeta = false; DocumentMeta = documentMeta; Conventions = conventions; ConventionWriter = new SerializationConventionWriter(this); EntityReflector = entityReflector; CloseOutput = false; }
public DocumentJsonWriter(TextWriter textWriter, DocumentSerializationMeta documentMeta, SerializationConventions conventions, IEntityReflector entityReflector) : base(textWriter) { Ensure.That(documentMeta, "documentMeta").IsNotNull(); Ensure.That(conventions, "conventions").IsNotNull(); Ensure.That(conventions, "entityReflector").IsNotNull(); HasWrittenDocumentMeta = false; DocumentMeta = documentMeta; Conventions = conventions; ConventionWriter = new SerializationConventionWriter(this); EntityReflector = entityReflector; CloseOutput = false; }
public Entities(IDbClientConnection connection, ISerializer serializer, IEntityReflector entityReflector) : base(connection) { Ensure.That(serializer, "serializer").IsNotNull(); Ensure.That(entityReflector, "entityReflector").IsNotNull(); Serializer = serializer; Reflector = entityReflector; EntityResponseFactory = new EntityResponseFactory(serializer, Reflector); GetHttpRequestFactory = new GetEntityHttpRequestFactory(); PostHttpRequestFactory = new PostEntityHttpRequestFactory(Serializer); PutHttpRequestFactory = new PutEntityHttpRequestFactory(Reflector, Serializer); DeleteHttpRequestFactory = new DeleteEntityHttpRequestFactory(Reflector); }
public DocumentJsonReader(TextReader reader, Type docType, IEntityReflector entityReflector) : base(reader) { Ensure.That(docType, "docType").IsNotNull(); Ensure.That(entityReflector, "entityReflector").IsNotNull(); DocType = docType; EntityReflector = entityReflector; Reader = reader; CloseInput = false; #if PCL || vNext DocTypeInfo = docType.GetTypeInfo(); #endif }
public Entities(IDbConnection connection, ISerializer serializer, IEntityReflector entityReflector) : base(connection) { Ensure.Any.IsNotNull(serializer, nameof(serializer)); Ensure.Any.IsNotNull(entityReflector, nameof(entityReflector)); Serializer = serializer; Reflector = entityReflector; EntityResponseFactory = new EntityResponseFactory(serializer, Reflector); GetHttpRequestFactory = new GetEntityHttpRequestFactory(); PostHttpRequestFactory = new PostEntityHttpRequestFactory(Serializer); PutHttpRequestFactory = new PutEntityHttpRequestFactory(Reflector, Serializer); DeleteHttpRequestFactory = new DeleteEntityHttpRequestFactory(Reflector); PurgeHttpRequestFactory = new PurgeEntityHttpRequestFactory(Reflector, Serializer); PurgeResponseFactory = new PurgeResponseFactory(Serializer); }
public GetEntityHttpRequestFactory(IConnection connection, IEntitySerializer serializer, IEntityReflector reflector) : base(connection, serializer, reflector) {}
protected EntityHttpRequestFactoryBase(IConnection connection, IEntitySerializer serializer, IEntityReflector reflector) : base(connection) { Serializer = serializer; Reflector = reflector; }
public PutEntityHttpRequestFactory(IConnection connection, IEntitySerializer serializer, IEntityReflector reflector) : base(connection, serializer, reflector) { }
public EntitySerializationContractResolver(IEntityReflector entityReflector) { Ensure.That(entityReflector, "entityReflector").IsNotNull(); EntityReflector = entityReflector; }
public EntityResponseFactory(ISerializer serializer, IEntityReflector entityReflector) { SuccessfulResponseMaterializer = new EntityResponseMaterializer(serializer, entityReflector); FailedResponseMaterializer = new FailedEntityResponseMaterializer(serializer); }
protected ViewQueryResponseRowsDeserializerTests(IEntityReflector entityReflector) { SUT = new DefaultSerializer(new SerializationConfiguration(new SerializationContractResolver()), new DocumentSerializationMetaProvider(), entityReflector); }
public SerializationContractResolver(IEntityReflector entityReflector) : base(true) { EntityReflector = entityReflector; }
public DeleteEntityHttpRequestFactory(IEntityReflector reflector) { Ensure.Any.IsNotNull(reflector, nameof(reflector)); Reflector = reflector; }
public DeleteEntityHttpRequestFactory(IEntityReflector reflector) { Ensure.That(reflector, "reflector").IsNotNull(); Reflector = reflector; }
/// <summary> /// Apply the merge from the json to the entity value. /// </summary> private static JsonEntityMergeResult MergeApply(JsonEntityMergeArgs args, IEntityReflector er, JToken json, object entity) { if (!json.HasValues) { return(JsonEntityMergeResult.SuccessNoChanges); } bool hasError = false; bool hasChanged = false; foreach (var jp in json.Children <JProperty>()) { // Get the corresponding property from the entity. var pr = er.GetJsonProperty(jp.Name); if (pr == null) { if (args.Log(MessageItem.CreateMessage(jp.Path, MessageType.Warning, $"The JSON path is not valid for the entity.")) == JsonEntityMergeResult.Error) { hasError = true; } continue; } // Handle the intrinsic types. if (!pr.IsComplexType) { if (jp.Value.Type == JTokenType.Array || jp.Value.Type == JTokenType.Object) { return(args.Log(MessageItem.CreateMessage(jp.Path, MessageType.Error, $"The JSON token is malformed and could not be parsed."))); } try { if (pr.SetValueFromJToken(entity, jp.Value)) { hasChanged = true; } } catch (FormatException fex) { return(args.Log(MessageItem.CreateMessage(jp.Path, MessageType.Error, $"The JSON token is malformed: {fex.Message}"))); } catch (Exception) { throw; } continue; } // Handle complex types (objects, arrays, collections, etc). switch (MergeApplyComplex(args, pr, jp, entity)) { case JsonEntityMergeResult.SuccessWithChanges: hasChanged = true; break; case JsonEntityMergeResult.Error: hasError = true; break; } } return(hasError ? JsonEntityMergeResult.Error : hasChanged?JsonEntityMergeResult.SuccessWithChanges : JsonEntityMergeResult.SuccessNoChanges); }