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));
        }