public ReferenceTypeSerializer(ResourceType referringResourceType, ResourceProperty resourceProperty) : base(resourceProperty.ResourceType) { if (resourceProperty.ResourceType.ResourceTypeKind == ResourceTypeKind.EntityType) { object[] name = new object[1]; name[0] = resourceProperty.Name; referringResourceType.ThrowIfNull("referringResourceType", new ParameterExtensions.MessageLoader(SerializerBase.GetReferringResourceTypeCannotNullMessage), name); DataContext currentContext = DataServiceController.Current.GetCurrentContext(); if (currentContext != null) { PSEntityMetadata entityMetadata = currentContext.UserSchema.GetEntityMetadata(referringResourceType) as PSEntityMetadata; PSEntityMetadata.ReferenceSetCmdlets referenceSetCmdlet = null; if (!entityMetadata.CmdletsForReferenceSets.TryGetValue(resourceProperty.Name, out referenceSetCmdlet)) { this.referencePropertyType = PSEntityMetadata.ReferenceSetCmdlets.ReferencePropertyType.Instance; } else { this.referencePropertyType = referenceSetCmdlet.PropertyType; return; } } return; } else { throw new ArgumentException("resourceType"); } }
public static void AddDerivedType(this ResourceType resourceType, ResourceType derivedType) { object[] name = new object[1]; name[0] = resourceType.Name; derivedType.ThrowIfNull("derivedType", Resources.NullPassedAsDerivedType, name); object[] fullName = new object[2]; fullName[0] = resourceType.FullName; fullName[1] = derivedType.FullName; ExceptionHelpers.ThrowArgumentExceptionIf("derivedType", derivedType.BaseType != resourceType, Resources.NotBaseResourceType, fullName); (resourceType.CustomState as ResourceCustomState).DerivedTypes.Add(derivedType); }
public ReferenceSetSerializer(ResourceType referringResourceType, ResourceProperty resourceProperty) : base(resourceProperty.ResourceType) { if (resourceProperty.ResourceType.ResourceTypeKind == ResourceTypeKind.EntityType) { object[] name = new object[1]; name[0] = resourceProperty.Name; referringResourceType.ThrowIfNull("referringResourceType", new ParameterExtensions.MessageLoader(SerializerBase.GetReferringResourceTypeCannotNullMessage), name); this.resourceProperty = resourceProperty; this.referringResourceType = referringResourceType; return; } else { throw new ArgumentException("resourceType"); } }
internal ResourceSet AddResourceSet(string name, ResourceType entityType) { name.ThrowIfNullOrEmpty("name", Resources.NullIsPassedAsResourceSetName, new object[0]); object[] objArray = new object[1]; objArray[0] = name; entityType.ThrowIfNull("entityType", Resources.ParameterSetNull, objArray); if (entityType.ResourceTypeKind == ResourceTypeKind.EntityType) { ResourceSet resourceSet = new ResourceSet(name, entityType); if (!this.ResourceSets.Keys.Contains<string>(name)) { this.ResourceSets.Add(name, resourceSet); return resourceSet; } else { object[] item = new object[3]; item[0] = name; item[1] = entityType.Name; item[2] = this.ResourceSets[name]; throw new ArgumentException(ExceptionHelpers.GetExceptionMessage(Resources.ResourceSetNameDuplicated, item)); } } else { throw new InvalidResourceTypeException(entityType.Name, entityType.ResourceTypeKind.ToString(), ResourceTypeKind.EntityType.ToString()); } }