protected override void EndProcessing() { var privateData = (Hashtable)MyInvocation.MyCommand.Module.PrivateData; var context = (OrchestrationContext)privateData[SetFunctionInvocationContextCommand.ContextKey]; var loadedFunctions = FunctionLoader.GetLoadedFunctions(); var task = new ActivityInvocationTask(FunctionName, Input); ActivityInvocationTask.ValidateTask(task, loadedFunctions); _durableTaskHandler.StopAndInitiateDurableTaskOrReplay( task, context, NoWait.IsPresent, WriteObject); }
internal static void ValidateTask(ActivityInvocationTask task, IEnumerable <AzFunctionInfo> loadedFunctions) { var functionInfo = loadedFunctions.FirstOrDefault(fi => fi.FuncName == task.FunctionName); if (functionInfo == null) { var message = string.Format(PowerShellWorkerStrings.FunctionNotFound, task.FunctionName); throw new InvalidOperationException(message); } var activityTriggerBinding = functionInfo.InputBindings.FirstOrDefault( entry => DurableBindings.IsActivityTrigger(entry.Value.Type) && entry.Value.Direction == BindingInfo.Types.Direction.In); if (activityTriggerBinding.Key == null) { var message = string.Format(PowerShellWorkerStrings.FunctionDoesNotHaveProperActivityFunctionBinding, task.FunctionName); throw new InvalidOperationException(message); } }