internal static FunctionInstanceArgument CreateFunctionInstanceArgument(string value, ParameterDescriptor descriptor) { BlobParameterDescriptor blobDescriptor = descriptor as BlobParameterDescriptor; BlobTriggerParameterDescriptor blobTriggerDescriptor = null; string accountName = null; if (blobDescriptor != null) { accountName = blobDescriptor.AccountName; } else { blobTriggerDescriptor = descriptor as BlobTriggerParameterDescriptor; if (blobTriggerDescriptor != null) { accountName = blobTriggerDescriptor.AccountName; } } return(new FunctionInstanceArgument { Value = value, IsBlob = blobDescriptor != null || blobTriggerDescriptor != null, IsBlobOutput = blobDescriptor != null && blobDescriptor.Access == FileAccess.Write, AccountName = accountName }); }
public void TestNameResolver() { var nameResolver = new FakeNameResolver(); nameResolver.Add("name", "VALUE"); FunctionDescriptor func = IndexMethod("NameResolver", nameResolver).Item1; Assert.NotNull(func); var parameters = func.Parameters; Assert.Single(parameters); ParameterDescriptor firstParameter = parameters.First(); Assert.Equal("inputs", firstParameter.Name); Assert.IsType <BlobParameterDescriptor>(firstParameter); BlobParameterDescriptor blobParameter = (BlobParameterDescriptor)firstParameter; Assert.Equal(@"input", blobParameter.ContainerName); Assert.Equal(@"VALUE", blobParameter.BlobName); }
internal static ParameterSnapshot CreateParameterSnapshot(ParameterDescriptor parameter) { // If display hints have already been provided by the descriptor // use them. Otherwise, we construct a new snapshot below. Note that // for extensibility (e.g. custom binding extensions), this is the // mechanism that must be used, since the Dashboard doesn't share type info // with custom extensions, we won't have access to the actual type as we do below. if (parameter.DisplayHints != null) { return(new DisplayHintsParameterSnapshot(parameter.DisplayHints)); } switch (parameter.Type) { case "Blob": BlobParameterDescriptor blobParameter = (BlobParameterDescriptor)parameter; return(new BlobParameterSnapshot { ContainerName = blobParameter.ContainerName, BlobName = blobParameter.BlobName, IsInput = blobParameter.Access == FileAccess.Read }); case "BlobTrigger": BlobTriggerParameterDescriptor blobTriggerParameter = (BlobTriggerParameterDescriptor)parameter; return(new BlobParameterSnapshot { ContainerName = blobTriggerParameter.ContainerName, BlobName = blobTriggerParameter.BlobName, IsInput = true }); case "Queue": QueueParameterDescriptor queueParameter = (QueueParameterDescriptor)parameter; return(new QueueParameterSnapshot { QueueName = queueParameter.QueueName, IsInput = queueParameter.Access == FileAccess.Read }); case "QueueTrigger": QueueTriggerParameterDescriptor queueTriggerParameter = (QueueTriggerParameterDescriptor)parameter; return(new QueueParameterSnapshot { QueueName = queueTriggerParameter.QueueName, IsInput = true }); case "Table": TableParameterDescriptor tableParameter = (TableParameterDescriptor)parameter; return(new TableParameterSnapshot { TableName = tableParameter.TableName }); case "TableEntity": TableEntityParameterDescriptor tableEntityParameter = (TableEntityParameterDescriptor)parameter; return(new TableEntityParameterSnapshot { TableName = tableEntityParameter.TableName, PartitionKey = tableEntityParameter.PartitionKey, RowKey = tableEntityParameter.RowKey }); case "ServiceBus": // TEMP: This is here for back compat // Latest versions of the SDK send a display info // via ParameterDescriptor.DisplayHints ServiceBusParameterDescriptor serviceBusParameter = (ServiceBusParameterDescriptor)parameter; return(new ServiceBusParameterSnapshot { EntityPath = serviceBusParameter.QueueOrTopicName, IsInput = false }); case "ServiceBusTrigger": // TEMP: This is here for back compat // Latest versions of the SDK send display info // via ParameterDescriptor.DisplayHints ServiceBusTriggerParameterDescriptor serviceBusTriggerParameter = (ServiceBusTriggerParameterDescriptor)parameter; return(new ServiceBusParameterSnapshot { EntityPath = serviceBusTriggerParameter.QueueName != null ? serviceBusTriggerParameter.QueueName : serviceBusTriggerParameter.TopicName + "/Subscriptions/" + serviceBusTriggerParameter.SubscriptionName, IsInput = true }); case "CallerSupplied": case "BindingData": return(new InvokeParameterSnapshot()); default: // Don't convert parameters that aren't used for invoke purposes. return(null); } }
internal static ParameterSnapshot CreateParameterSnapshot(ParameterDescriptor parameter) { switch (parameter.Type) { case "Blob": BlobParameterDescriptor blobParameter = (BlobParameterDescriptor)parameter; return(new BlobParameterSnapshot { ContainerName = blobParameter.ContainerName, BlobName = blobParameter.BlobName, IsInput = blobParameter.Access == FileAccess.Read }); case "BlobTrigger": BlobTriggerParameterDescriptor blobTriggerParameter = (BlobTriggerParameterDescriptor)parameter; return(new BlobParameterSnapshot { ContainerName = blobTriggerParameter.ContainerName, BlobName = blobTriggerParameter.BlobName, IsInput = true }); case "Queue": QueueParameterDescriptor queueParameter = (QueueParameterDescriptor)parameter; return(new QueueParameterSnapshot { QueueName = queueParameter.QueueName, IsInput = queueParameter.Access == FileAccess.Read }); case "QueueTrigger": QueueTriggerParameterDescriptor queueTriggerParameter = (QueueTriggerParameterDescriptor)parameter; return(new QueueParameterSnapshot { QueueName = queueTriggerParameter.QueueName, IsInput = true }); case "Table": TableParameterDescriptor tableParameter = (TableParameterDescriptor)parameter; return(new TableParameterSnapshot { TableName = tableParameter.TableName }); case "TableEntity": TableEntityParameterDescriptor tableEntityParameter = (TableEntityParameterDescriptor)parameter; return(new TableEntityParameterSnapshot { TableName = tableEntityParameter.TableName, PartitionKey = tableEntityParameter.PartitionKey, RowKey = tableEntityParameter.RowKey }); case "ServiceBus": ServiceBusParameterDescriptor serviceBusParameter = (ServiceBusParameterDescriptor)parameter; return(new ServiceBusParameterSnapshot { EntityPath = serviceBusParameter.QueueOrTopicName, IsInput = false }); case "ServiceBusTrigger": ServiceBusTriggerParameterDescriptor serviceBusTriggerParameter = (ServiceBusTriggerParameterDescriptor)parameter; return(new ServiceBusParameterSnapshot { EntityPath = serviceBusTriggerParameter.QueueName != null ? serviceBusTriggerParameter.QueueName : serviceBusTriggerParameter.TopicName + "/Subscriptions/" + serviceBusTriggerParameter.SubscriptionName, IsInput = true }); case "CallerSupplied": case "BindingData": return(new InvokeParameterSnapshot()); default: // Don't convert parameters that aren't used for invoke purposes. return(null); } }