private static Hashtable GetTriggerMetadata()

in src/RequestProcessor.cs [448:486]


        private static Hashtable GetTriggerMetadata(AzFunctionInfo functionInfo, InvocationRequest invocationRequest)
        {
            if (!functionInfo.HasTriggerMetadataParam)
            {
                return null;
            }

            const string InvocationId = "InvocationId";
            const string FunctionDirectory = "FunctionDirectory";
            const string FunctionName = "FunctionName";

            var triggerMetadata = new Hashtable(StringComparer.OrdinalIgnoreCase);
            foreach (var dataItem in invocationRequest.TriggerMetadata)
            {
                // MapField<K, V> is case-sensitive, but powershell is case-insensitive,
                // so for keys differ only in casing, the first wins.
                if (!triggerMetadata.ContainsKey(dataItem.Key))
                {
                    triggerMetadata.Add(dataItem.Key, dataItem.Value.ToObject());
                }
            }

            if (!triggerMetadata.ContainsKey(InvocationId))
            {
                triggerMetadata.Add(InvocationId, invocationRequest.InvocationId);
            }

            if (!triggerMetadata.ContainsKey(FunctionDirectory))
            {
                triggerMetadata.Add(FunctionDirectory, functionInfo.FuncDirectory);
            }

            if (!triggerMetadata.ContainsKey(FunctionName))
            {
                triggerMetadata.Add(FunctionName, functionInfo.FuncName);
            }

            return triggerMetadata;
        }