Esempio n. 1
0
        private static void ExecuteFlow(DefaultApi api)
        {
            try
            {
                FlowExecutionProgress progress = api.ExecuteFlow(FLOW_ID);
                string executionId             = progress.Id;

                bool done = false;
                while (!done)
                {
                    System.Console.WriteLine($"Flow is {progress.Status}");
                    switch (progress.Status)
                    {
                    case FlowExecutionStatus.Running:
                    case FlowExecutionStatus.Queued:
                    case FlowExecutionStatus.SelectFlow:
                        // keep waiting
                        System.Console.WriteLine("waiting..");
                        System.Threading.Thread.Sleep(1000);
                        progress = api.GetFlowExecutionProgress(executionId, 10);
                        break;

                    case FlowExecutionStatus.Waiting:
                        throw new ApplicationException("won't wait for something that can take a long time");

                    case FlowExecutionStatus.UserInput:
                        // fill in user input
                        JObject properties = new JObject();
                        properties["55c8256f-1984-4fe7-870b-1692e6d7567f"] = "Gent";
                        progress = api.ContinueFlowExecution(executionId, properties);
                        break;

                    case FlowExecutionStatus.Canceled:
                    case FlowExecutionStatus.Error:
                    case FlowExecutionStatus.Interrupted:
                    case FlowExecutionStatus.Success:
                        done = true;
                        break;
                    }
                }

                System.Console.WriteLine("Done");
                JObject   jObject   = (JObject)progress.Model;
                JProperty firstProp = jObject.First as JProperty;

                string documentId = jObject[firstProp.Name]["document"]["id"].Value <string>();
                System.Console.WriteLine("document id: " + documentId);
                byte[] content = api.GetDocumentContent(documentId);

                File.WriteAllBytes(Path.Combine(DOCUMENT_FOLDER, executionId + ".pdf"), content);
            }
            catch (Exception ex)
            {
                System.Console.WriteLine("Exception during execution: " + ex.Message);
            }
        }
Esempio n. 2
0
        private FlowExecutionProgress ExecuteFlow(string flowId, DefaultApi api)
        {
            try
            {
                var progress    = api.ExecuteFlow(flowId);
                var executionId = progress.Id;

                var done = false;
                while (!done)
                {
                    Console.WriteLine($"Flow is {progress.Status}");
                    switch (progress.Status)
                    {
                    case FlowExecutionStatus.Running:
                    case FlowExecutionStatus.Queued:
                    case FlowExecutionStatus.SelectFlow:
                        // keep waiting
                        Console.WriteLine("waiting..");
                        Thread.Sleep(1000);
                        progress = api.GetFlowExecutionProgress(executionId, 10);
                        break;

                    case FlowExecutionStatus.Waiting:
                        throw new ApplicationException("won't wait for something that can take a long time");

                    case FlowExecutionStatus.UserInput:
                        // fill in user input
                        var properties = new JObject();
                        properties["55c8256f-1984-4fe7-870b-1692e6d7567f"] = "Gent";
                        progress = api.ContinueFlowExecution(executionId, properties);
                        break;

                    case FlowExecutionStatus.Canceled:
                    case FlowExecutionStatus.Error:
                    case FlowExecutionStatus.Interrupted:
                    case FlowExecutionStatus.Success:
                        done = true;
                        break;
                    }
                }

                Console.WriteLine("Done");

                return(progress);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception during execution: " + ex.Message);
                throw ex;
                return(null);
            }
        }