public object PostIndex(Guid threadTaskID, Guid stepID, bool?goNext = null, string controlId = "")
        {
            using (ThreadTaskService threadTaskService = new ThreadTaskService())
            {
                using (DynamicFormService dynamicFormService = new DynamicFormService())
                {
                    sysBpmsThreadTask threadTask = new ThreadTaskService().GetInfo(threadTaskID, new string[] { nameof(sysBpmsThreadTask.Thread) });
                    using (ProcessEngine processEngine = new ProcessEngine(new EngineSharedModel(threadTask.Thread, threadTask.Thread.ProcessID, this.MyRequest.GetList(dynamicFormService.GetInfoByStepID(stepID).ConfigXmlModel.IsEncrypted, base.ApiSessionId).ToList(), base.ClientUserName, base.ApiSessionId)))
                    {
                        PostTaskFormResponseModel responseVM = processEngine.PostTaskForm(threadTaskID, stepID, goNext, controlId);

                        if (!responseVM.IsSuccess)
                        {
                            return(new EngineFormResponseDTO(redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: false,
                                                             null, false, messageList: responseVM.ListMessageModel, false));
                        }
                        else
                        {
                            if (responseVM.IsSubmit)
                            {
                                if (responseVM.IsNextPrevious == true)
                                {
                                    return(new EngineFormResponseDTO(
                                               redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel),
                                               reloadForm: true,
                                               listDownloadModel: responseVM.ListDownloadModel,
                                               messageList: responseVM.ListMessageModel
                                               )
                                    {
                                        StepID = responseVM.StepID.Value,
                                    });
                                }
                                else
                                {
                                    return(new EngineFormResponseDTO(
                                               redirectUrl: string.IsNullOrWhiteSpace(base.GetRedirectUrl(responseVM.RedirectUrlModel)) ? "CartableManage" :
                                               base.GetRedirectUrl(responseVM.RedirectUrlModel), reloadForm: false,
                                               listDownloadModel: responseVM.ListDownloadModel,
                                               messageList: responseVM.ListMessageModel
                                               ));
                                }
                            }
                            else
                            {
                                return new EngineFormResponseDTO(
                                    redirectUrl: base.GetRedirectUrl(responseVM.RedirectUrlModel),
                                    reloadForm: true,
                                    listDownloadModel: responseVM.ListDownloadModel,
                                    messageList: responseVM.ListMessageModel
                                    )
                                       {
                                           StepID = responseVM.StepID.Value,
                                       }
                            };
                        }
                    }
                }
            }
        }
    }