Ejemplo n.º 1
0
 public override void Read(object entity, JToken doc, string id,
                           PreProcessInfo preProcess, OdmViewProcessingOptions processingOptions, bool emptyProxy, CouchDBContextImpl context)
 {
     // Not reloading value if this is not empty proxy.
     if (emptyProxy)
     {
         ReadValueType(entity, doc);
     }
 }
        private void CreateReferenceProxies(
            object proxy, JToken doc, string id,
            PreProcessInfo preProcess, OdmViewProcessingOptions processingOptions, bool emptyProxy,
            CouchDBContextImpl context)
        {
            AssociationAttribute associationAttr = AssociationAttribute.GetSingle(PropertyInfo);

            if (associationAttr == null)
            {
                if (emptyProxy)
                {
                    CreateDirectAssociationCollection(proxy, doc, context);
                }
            }
            else
            {
                CreateInverseAssociationCollection(proxy, doc, id, preProcess, associationAttr, processingOptions, context);
            }
        }
        private void CreateInverseAssociationCollection(
            object proxy, JToken doc, string id,
            PreProcessInfo preProcess, AssociationAttribute associationAttr,
            OdmViewProcessingOptions processingOptions, CouchDBContextImpl context)
        {
            object keyPart;

            if (processingOptions.AssoicateCollectionsToLoad.TryGetValue(PropertyInfo.Name, out keyPart))
            {
                Type elementType = PropertyInfo.PropertyType.GenericTypeArguments[0];

                string[] inverseKeys =
                    preProcess.Rows
                    .Where(x => x.EntityType.Equals(elementType) && x.Key.MatchRelatedId(id, keyPart))
                    .Select(x => x.Id)
                    .ToArray();

                context.Serializer.SetInverseAssociationCollectionInternal(proxy, PropertyInfo, associationAttr, inverseKeys);
            }
        }
 public abstract void Read(object entity, JToken doc, string id,
                           PreProcessInfo preProcess, OdmViewProcessingOptions processingOptions, bool emptyProxy,
                           CouchDBContextImpl context);
 public override void Read(object entity, JToken doc, string id, PreProcessInfo preProcess,
                           OdmViewProcessingOptions processingOptions, bool emptyProxy, CouchDBContextImpl context)
 {
     CreateReferenceProxies(entity, doc, id, preProcess, processingOptions, emptyProxy, context);
 }
 public override void Read(object entity, JToken doc, string id, PreProcessInfo preProcess, OdmViewProcessingOptions processingOptions, bool emptyProxy, CouchDBContextImpl context)
 {
     // TODO: implement this.
 }
 public override void Read(object entity, JToken doc, string id, PreProcessInfo preProcess,
                           OdmViewProcessingOptions processingOptions, bool emptyProxy, CouchDBContextImpl context)
 {
     ReadArray(entity, doc);
 }