public async Task <ActionResult> ConfirmSignatureAsync(CourseContractViewModel viewModel)
        {
            var item = await viewModel.ConfirmContractSignatureAsync(this);

            if (item == null)
            {
                if (!ModelState.IsValid)
                {
                    return(View("~/Views/Shared/ReportInputError.ascx"));
                }
                else
                {
                    return(View("~/Views/ConsoleHome/Shared/JsAlert.cshtml", model: ModelState.ErrorMessage()));
                }
            }

            return(Json(new { result = true }));
        }
        public async Task <ActionResult> ConfirmSignatureAsync(CourseContractViewModel viewModel)
        {
            var item = await viewModel.ConfirmContractSignatureAsync(this);

            if (item == null)
            {
                if (!ModelState.IsValid)
                {
                    ViewBag.AlertError = true;
                    return(View(ConsoleHomeController.InputErrorView));
                }
                else
                {
                    return(View("~/Views/ConsoleHome/Shared/AlertMessage.cshtml", model: ModelState.ErrorMessage()));
                }
            }

            if (item.InstallmentID.HasValue)
            {
                var            contractItems = item.ContractInstallment.CourseContract.ToArray();
                CourseContract nextItem      = null;
                int            idx           = 0;
                for (; idx < contractItems.Length; idx++)
                {
                    if (contractItems[idx].Status != (int?)Naming.CourseContractStatus.已生效 && contractItems[idx].ContractID != item.ContractID)
                    {
                        nextItem = contractItems[idx];
                        break;
                    }
                }

                if (nextItem != null)
                {
                    viewModel.UrlAction    = Url.Action("SignCourseContract", "ConsoleHome");
                    viewModel.KeyID        = nextItem.ContractID.EncryptKey();
                    viewModel.AlertMessage = $"總共有{contractItems.Length}張分期合約,請繼續第{idx + 1}張分期合約的簽名!!";
                    return(View("~/Views/ConsoleHome/Shared/ViewModelCommitted.cshtml", viewModel));
                }
            }

            return(View("~/Views/ContractConsole/Editing/CourseContractSigned.cshtml", item));
        }