public async Task <IActionResult> AddBlockCompany(string CompanyName, int?returnPage = 0) { try { // 檢查 Session 儲存的工作列表是否為空 string JobListStr = HttpContext.Session.GetString("jobList"); if (JobListStr == null) { ViewBag.Error = "系統忙碌中,請稍後再試 >___<"; return(View("~/Views/Shared/ErrorPage.cshtml")); } // 紀錄之前所在的工作列表分頁 returnPage = returnPage == null ? 0 : returnPage; if (returnPage != 0) { HttpContext.Session.SetInt32("returnPage", (int)returnPage); } // 調用 SettingService 提供的函數將該公司添加到該用戶的所有設定檔,若中途出錯則跳轉到指定的錯誤頁面 string ErrorMessage = SettingService.AddBlockCompany(_context, User.Identity.Name, CompanyName); if (ErrorMessage != null) { ViewBag.Error = ErrorMessage; return(View("~/Views/Shared/ErrorPage.cshtml")); } // 若中途沒有出錯則寫入變更到DB await _context.SaveChangesAsync(); // 檢查 Session 儲存的工作列表,去除該公司所提供的工作 JobList jobs = JsonConvert.DeserializeObject <JobList>(JobListStr); JobList validJobs = JobService.GetValidJobs(jobs, CompanyName); HttpContext.Session.SetString("jobList", JsonConvert.SerializeObject(validJobs)); // 跳轉回之前所在的工作列表分頁(分頁判斷的邏輯在 Job/Index ) return(RedirectToRoute(new { controller = "Job", action = "Index" })); } catch (Exception) { ViewBag.Error = "系統忙碌中,請稍後再試 >___<"; return(View("~/Views/Shared/ErrorPage.cshtml")); } }