Esempio n. 1
0
        internal Collection(ResourceClassBase resourceClass, AssociationView association, FilterContext filterContext)
            : base(resourceClass, association.Name)
        {
            Association   = association;
            FilterContext = filterContext ?? FilterContext.NullFilterContext;

            ItemType = new ResourceChildItem(resourceClass.ResourceModel, association.OtherEntity, FilterContext, resourceClass);

            if (FilterContext.Definition != null)
            {
                // Make sure the XML element matches what we are expecting
                if (FilterContext.Definition.Name != "Collection")
                {
                    throw new ArgumentException(
                              string.Format(
                                  "The filter context definition XML element reference was a '{0}' element rather than the expected 'Collection' element.",
                                  FilterContext.Definition.Name));
                }

                var filterElt = FilterContext.Definition.Element("Filter");

                if (filterElt != null)
                {
                    ValueFilters = new[]
                    {
                        new CollectionItemValueFilter(filterElt)
                    };
                }
                else
                {
                    ValueFilters = new CollectionItemValueFilter[0];
                }
            }
        }
Esempio n. 2
0
        internal EmbeddedObject(ResourceClassBase resourceClass, AssociationView association, FilterContext childFilterContext)
            : base(resourceClass, association.Name)
        {
            Association = association;
            ObjectType  = new ResourceChildItem(resourceClass.ResourceModel, association.OtherEntity, childFilterContext, resourceClass);

            _parentFullName = Association.ThisEntity.FullName;
        }
Esempio n. 3
0
        public Extension(ResourceClassBase resourceClass, ResourceChildItem extensionObjectType, string displayName)
            : base(resourceClass, displayName, displayName.ToCamelCase())
        {
            ObjectType = extensionObjectType;

            if (resourceClass.Entity != null)
            {
                ParentFullName = resourceClass.Entity.FullName;
            }
        }
Esempio n. 4
0
        internal Extension(
            ResourceClassBase resourceClass,
            AssociationView association,
            FilterContext childFilterContext,
            Func <IEnumerable <AssociationView> > collectionAssociations,
            Func <IEnumerable <AssociationView> > embeddedObjectAssociations)
            : base(resourceClass, association.Name)
        {
            Association = association;

            ObjectType = new ResourceChildItem(
                resourceClass.ResourceModel,
                association.OtherEntity,
                childFilterContext,
                resourceClass,
                collectionAssociations,
                embeddedObjectAssociations);

            ParentFullName = Association.ThisEntity.FullName;
        }
Esempio n. 5
0
        internal Collection(Collection[] collections)
            : base(
                collections.Select(c => c.ResourceClass)
                .FirstOrDefault(),            // TODO: These won't be the same, ever.  Seems like we should just pass the ResourceModel.
                collections.Select(c => c.Association.Name)
                .FirstOrDefault())

            // No need to pass on a filter because the composite already consists of filtered collections
        {
            // Make sure all the collections are truly derived from the same association
            ValidateCompositeCollectionArguments(collections);

            Association = collections.Select(c => c.Association)
                          .FirstOrDefault();

            ItemType = new ResourceChildItem(
                collections.Select(c => c.ItemType)
                .ToArray(),
                ResourceClass);

            // Combine all the value filters from all the composed collections.
            ValueFilters = collections.SelectMany(c => c.ValueFilters)
                           .ToArray();
        }
Esempio n. 6
0
 public EmbeddedObject(ResourceClassBase resourceClass, ResourceChildItem objectType, string displayName)
     : base(resourceClass, displayName, displayName.ToCamelCase())
 {
     ObjectType = objectType;
 }
Esempio n. 7
0
 public Collection(ResourceClassBase resourceClass, ResourceChildItem itemType, AssociationView association, string memberDisplayName)
     : base(resourceClass, memberDisplayName, memberDisplayName.ToCamelCase())
 {
     ItemType    = itemType;
     Association = association;
 }