public IEnumerable <ServiceAction> GetServiceActionsByBindingParameterType(DataServiceOperationContext operationContext, ResourceType bindingParameterType) { var collectionType = bindingParameterType as EntityCollectionResourceType; if (collectionType != null && collectionType.ItemType.Name == "EntityTypeWithStringKey") { var serviceAction = new ServiceAction("Action", ResourceType.GetPrimitiveResourceType(typeof(string)), OperationParameterBindingKind.Always, new[] { new ServiceActionParameter("param1", bindingParameterType) }, null); serviceAction.SetReadOnly(); yield return(serviceAction); } }
public bool TryResolveServiceAction(DataServiceOperationContext operationContext, string serviceActionName, out ServiceAction serviceAction) { if (serviceActionName == "Action") { IDataServiceMetadataProvider metadataProvider = (IDataServiceMetadataProvider)operationContext.GetService(typeof(IDataServiceMetadataProvider)); ResourceType resourceType; metadataProvider.TryResolveResourceType(EntityTypeNameWithStringKey, out resourceType); Assert.IsNotNull(resourceType); serviceAction = new ServiceAction("Action", ResourceType.GetPrimitiveResourceType(typeof(string)), OperationParameterBindingKind.Always, new[] { new ServiceActionParameter("param1", ResourceType.GetEntityCollectionResourceType(resourceType)) }, null); serviceAction.SetReadOnly(); return(true); } serviceAction = null; return(false); }