public async Task <ActionResult> CommitContractServiceAsync(CourseContractViewModel viewModel) { String storedPath = null; if (Request.Form.Files.Count > 0) { storedPath = Path.Combine(FileLogger.Logger.LogDailyPath, Guid.NewGuid().ToString() + Path.GetExtension(Request.Form.Files[0].FileName)); Request.Form.Files[0].SaveAs(storedPath); } var item = await viewModel.CommitContractServiceAsync(this, storedPath); if (item == null) { if (!ModelState.IsValid) { return(View(ConsoleHomeController.InputErrorView)); } else { return(View("~/Views/ConsoleHome/Shared/AlertMessage.cshtml", model: ModelState.ErrorMessage())); } } return(View("~/Views/ContractConsole/Editing/ContractServiceCommitted.cshtml", item)); }
public async Task <ActionResult> EnableContractStatusAsync(CourseContractViewModel viewModel) { var profile = await HttpContext.GetUserAsync(); if (viewModel.KeyID != null) { viewModel.ContractID = viewModel.DecryptKeyValue(); } var item = models.GetTable <CourseContract>().Where(c => c.ContractID == viewModel.ContractID).FirstOrDefault(); if (item != null) { var pdfFile = item.MakeContractEffective(models, profile, Naming.CourseContractStatus.待審核); if (pdfFile == null) { return(View("~/Views/ConsoleHome/Shared/AlertMessage.cshtml", model: "合約狀態錯誤,請重新檢查!!")); } else { return(View("~/Views/ContractConsole/Editing/CourseContractSigned.cshtml", item)); } } else { return(View("~/Views/ConsoleHome/Shared/AlertMessage.cshtml", model: "合約資料錯誤!!")); } }
public async Task <ActionResult> CommitContractAsync(CourseContractViewModel viewModel) { CourseContract item = null; try { item = await viewModel.CommitCourseContractAsync(this, true); } catch (Exception ex) { var logger = ServiceProvider.GetRequiredService <ILogger <ContractConsoleController> >(); logger.LogError(ex, ex.Message); ModelState.AddModelError("Message", ex.Message); } if (item == null) { if (!ModelState.IsValid) { ViewBag.AlertError = true; return(View(ConsoleHomeController.InputErrorView)); } else { return(View("~/Views/ConsoleHome/Shared/AlertMessage.cshtml", model: ModelState.ErrorMessage())); } } return(View("~/Views/ContractConsole/Editing/CourseContractCommitted.cshtml", item)); }
public async Task <ActionResult> EnableContractAmendmentAsync(CourseContractViewModel viewModel) { ViewBag.ViewModel = viewModel; var item = await viewModel.EnableContractAmendmentAsync(this, viewModel.FromStatus); if (item == null) { return(View("~/Views/ConsoleHome/Shared/AlertMessage.cshtml", model: ModelState.ErrorMessage())); } return(View("~/Views/ContractConsole/Editing/ContractStatusChanged.cshtml", item)); }
public ActionResult EnableContractAmendment(CourseContractViewModel viewModel) { ViewBag.ViewModel = viewModel; var item = viewModel.EnableContractAmendment(this, out String alertMessage, viewModel.FromStatus); if (item == null) { return(View("~/Views/ConsoleHome/Shared/AlertMessage.cshtml", model: alertMessage)); } return(View("~/Views/ContractConsole/Editing/ContractStatusChanged.cshtml", item)); }
public ActionResult ContractAmendmentApprovalView(CourseContractViewModel viewModel) { ViewResult result = (ViewResult)ViewContractAmendment(viewModel); if (result.Model is CourseContractRevision) { var item = (CourseContractRevision)result.Model; var profile = HttpContext.GetUser(); ViewBag.ContractAgent = profile; ViewBag.ContractAction = "~/Views/CourseContract/Module/ContractAmendmentApproval.ascx"; } return(result); }
public async Task <ActionResult> ExecuteContractStatusAsync(CourseContractViewModel viewModel) { ViewBag.ViewModel = viewModel; var item = await viewModel.ExecuteContractStatusAsync(this); if (item == null) { if (!ModelState.IsValid) { return(View(ConsoleHomeController.InputErrorView)); } else { return(View("~/Views/ConsoleHome/Shared/AlertMessage.cshtml", model: ModelState.ErrorMessage())); } } else if (viewModel.FromStatus == Naming.CourseContractStatus.待審核 && viewModel.Status == (int)Naming.CourseContractStatus.待簽名) { 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?)viewModel.FromStatus && 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/ContractStatusChanged.cshtml", item)); }