Esempio n. 1
0
        public AddJobPositionViewModel GetViewModelForAddJobPosition(string userId)
        {
            _logger.LogInformation($"Executing GetViewModelForAddJobPosition. (UserID: {userId})");

            var vm = new AddJobPositionViewModel()
            {
                StartDate = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day,
                                         DateTime.UtcNow.Hour, DateTime.UtcNow.Minute, 00).ToLocalTime(),
                ApplicationStagesRequirement = new ApplicationStagesRequirement()
                {
                    IsApplicationApprovalRequired = true,
                    IsHomeworkRequired            = true,
                    IsInterviewRequired           = true,
                    IsPhoneCallRequired           = true,
                }
            };

            return(vm);
        }
        public async Task <IActionResult> Add(AddJobPositionViewModel addJobPositionViewModel, string returnUrl = null)
        {
            if (ModelState.IsValid)
            {
                if (addJobPositionViewModel.StartDate.ToUniversalTime() < DateTime.UtcNow)
                {
                    ModelState.AddModelError("StartDate", _stringLocalizer["StartDate must be in the future."]);
                }
                if (addJobPositionViewModel.ApplicationStagesRequirement.IsApplicationApprovalRequired == false &&
                    addJobPositionViewModel.ApplicationStagesRequirement.IsHomeworkRequired == false &&
                    addJobPositionViewModel.ApplicationStagesRequirement.IsInterviewRequired == false &&
                    addJobPositionViewModel.ApplicationStagesRequirement.IsPhoneCallRequired == false)
                {
                    ModelState.AddModelError("", _stringLocalizer["JobPosition must have at least one stage."]);
                }
            }

            if (ModelState.IsValid)
            {
                var userId = _userManager.GetUserId(HttpContext.User);
                try
                {
                    var jobPosition = await _jobPositionService.AddJobPosition(addJobPositionViewModel, userId);

                    TempData["Success"] = _stringLocalizer["Successfully created."].ToString();
                    return(RedirectToAction(nameof(JobPositionController.Details), new { jobPositionId = jobPosition.Id, returnUrl }));
                }
                catch (CustomRecruiterException ex)
                {
                    TempData["Error"] = ex.Message;
                }
            }

            var users = await _userManager.GetUsersInRoleAsync(RoleCollection.Recruiter);

            ViewData["DefaultResponsibleForApplicatioApprovalId"] = new SelectList(users, "Id", "Email", addJobPositionViewModel.ApplicationStagesRequirement.DefaultResponsibleForApplicatioApprovalId);
            ViewData["DefaultResponsibleForPhoneCallId"]          = new SelectList(users, "Id", "Email", addJobPositionViewModel.ApplicationStagesRequirement.DefaultResponsibleForPhoneCallId);
            ViewData["DefaultResponsibleForHomeworkId"]           = new SelectList(users, "Id", "Email", addJobPositionViewModel.ApplicationStagesRequirement.DefaultResponsibleForHomeworkId);
            ViewData["DefaultResponsibleForInterviewId"]          = new SelectList(users, "Id", "Email", addJobPositionViewModel.ApplicationStagesRequirement.DefaultResponsibleForInterviewId);

            return(View(addJobPositionViewModel));
        }
Esempio n. 3
0
        public async Task <JobPosition> AddJobPosition(AddJobPositionViewModel addJobPositionViewModel, string userId)
        {
            _logger.LogInformation($"Executing AddJobPosition. (UserID: {userId})");

            addJobPositionViewModel.ApplicationStagesRequirement.RemoveDefaultResponsibleIfStageIsDisabled();

            var jobPosition = new JobPosition()
            {
                Id          = Guid.NewGuid().ToString(),
                Name        = addJobPositionViewModel.Name,
                Description = addJobPositionViewModel.Description,
                StartDate   = addJobPositionViewModel.StartDate.ToUniversalTime(),
                EndDate     = addJobPositionViewModel.EndDate?.ToUniversalTime(),
                CreatorId   = userId,
                ApplicationStagesRequirement = addJobPositionViewModel.ApplicationStagesRequirement
            };

            await _jobPositionRepository.AddAsync(jobPosition);

            return(jobPosition);
        }