public async Task <JobPosition> UpdateJobPosition(EditJobPositionViewModel editJobPositionViewModel, string userId) { _logger.LogInformation($"Executing UpdateJobPosition. (UserID: {userId})"); var jobPosition = await _jobPositionRepository.GetAsync(editJobPositionViewModel.Id); if (jobPosition == null) { _logger.LogError($"Job position with ID:{editJobPositionViewModel.Id} not found. (UserID: {userId})"); throw new NotFoundException(_stringLocalizer["Job position with id {0} not found.", editJobPositionViewModel.Id]); } if (jobPosition.StartDate < DateTime.UtcNow) { _logger.LogError($"Couldn't edit job position with ID:{editJobPositionViewModel.Id}, because StartDate is in the past. (UserID: {userId})"); throw new InvalidActionException(_stringLocalizer["You couldn't edit job position with ID:{0}, because StartDate is in the past.", editJobPositionViewModel.Id]); } jobPosition.Name = editJobPositionViewModel.Name; jobPosition.Description = editJobPositionViewModel.Description; jobPosition.StartDate = editJobPositionViewModel.StartDate.ToUniversalTime(); jobPosition.EndDate = editJobPositionViewModel.EndDate?.ToUniversalTime(); await _jobPositionRepository.UpdateAsync(jobPosition); return(jobPosition); }
public async Task <IActionResult> Edit(string jobPositionId, EditJobPositionViewModel editJobPositionViewModel, string returnUrl = null) { if (ModelState.IsValid) { if (editJobPositionViewModel.StartDate.ToUniversalTime() < DateTime.UtcNow) { ModelState.AddModelError("StartDate", _stringLocalizer["StartDate must be in the future."]); } } if (ModelState.IsValid) { var userId = _userManager.GetUserId(HttpContext.User); try { var jobPosition = await _jobPositionService.UpdateJobPosition(editJobPositionViewModel, userId); TempData["Success"] = _stringLocalizer["Successfully updated."].ToString(); return(RedirectToLocal(returnUrl)); } catch (CustomRecruiterException ex) { TempData["Error"] = ex.Message; } } return(View(editJobPositionViewModel)); }