public async Task SendMyHomework(ReadMyHomeworkViewModel homework, string userId) { _logger.LogInformation($"Executing SendMyHomework. (UserID: {userId})"); var stage = await GetHomeworkStageToProcess(homework.Id, userId); if (stage.HomeworkState != HomeworkState.WaitingForSendHomework) { _logger.LogError($"Homework with ID:{homework.Id} is not in WaitingForSendHomework HomeworkState. (UserID: {userId})"); throw new InvalidActionException(_stringLocalizer["Homework with ID:{0} is not in WaitingForSendHomework HomeworkState.", homework.Id]); } stage.SendingTime = DateTime.UtcNow; stage.Url = homework.Url; stage.HomeworkState = HomeworkState.Completed; await _context.SaveChangesAsync(); }
public async Task <IActionResult> ReadMyHomework(string stageId, ReadMyHomeworkViewModel homework, string applicationId = null, string returnUrl = null) { if (ModelState.IsValid) { var myId = _userManager.GetUserId(HttpContext.User); try { await _myApplicationService.SendMyHomework(homework, myId); TempData["Success"] = _stringLocalizer["Homework sended successfully."].ToString(); return(RedirectToAction(nameof(MyApplicationController.ShowMyHomework), new { stageId = homework.Id, applicationId, returnUrl })); } catch (CustomRecruiterException ex) { TempData["Error"] = ex.Message; } } return(RedirectToAction(nameof(MyApplicationController.ReadMyHomework), new { stageId, applicationId, returnUrl })); }