public IWorkflow Complete()
 {
     return(new Workflow(
                Domain,
                Name,
                Description,
                Version,
                TaskList.AsOption(string.IsNullOrWhiteSpace),
                ListModule.OfSeq(stages).AsOption(),
                TaskStartToCloseTimeout.AsOption(),
                ExecutionStartToCloseTimeout.AsOption(),
                GetChildPolicy(ChildPolicy).AsOption(),
                Identity.AsOption(string.IsNullOrWhiteSpace),
                MaxAttempts.AsOption()));
 }
        public IActivity Complete()
        {
            var processor = FuncConvert.ToFSharpFunc(new Converter <TInput, TOutput>(Processor));

            return(new Activity <TInput, TOutput>(
                       Name,
                       Description,
                       processor,
                       TaskHeartbeatTimeout,
                       TaskScheduleToStartTimeout,
                       TaskStartToCloseTimeout,
                       TaskScheduleToCloseTimeout,
                       Version.AsOption(string.IsNullOrWhiteSpace),
                       TaskList.AsOption(string.IsNullOrWhiteSpace),
                       MaxAttempts.AsOption()));
        }