Пример #1
0
        public ActionResult UndoRejectCandidates(Guid jobAdId, Guid[] candidateIds, ApplicantStatus previousStatus)
        {
            try
            {
                // Look for the jobAd.

                var employer = CurrentEmployer;

                var jobAd = _jobAdsQuery.GetJobAd <JobAdEntry>(jobAdId);
                if (jobAd == null)
                {
                    return(JsonNotFound("job ad"));
                }

                // Remove candidates.

                var statuses = _jobAdApplicantsCommand.UndoRejectApplicants(employer, jobAd, candidateIds, previousStatus);

                return(BuildModelFromStatus(jobAd, statuses));
            }
            catch (UserException ex)
            {
                ModelState.AddModelError(ex, new StandardErrorHandler());
            }

            return(Json(new JsonResponseModel()));
        }
        private void AssertStatus(Guid applicationId, bool isPending, ApplicantStatus status)
        {
            var application = _memberApplicationsQuery.GetInternalApplication(applicationId);

            Assert.AreEqual(isPending, application.IsPending);
            Assert.AreEqual(status, _jobAdApplicantsQuery.GetApplicantStatus(application.Id));
        }
Пример #3
0
 public static bool IsHiringManagerInterviewDisabled(ApplicantStatus applicantStatus)
 {
     return(applicantStatus == ApplicantStatus.ScreeningRejected ||
            applicantStatus == ApplicantStatus.PhoneInterviewRejected ||
            applicantStatus == ApplicantStatus.HRRejected ||
            applicantStatus == ApplicantStatus.TechRejected);
 }
Пример #4
0
 public ManageCandidatesNavigation(Guid jobAdId, JobAdStatus jobAdStatus, ApplicantStatus applicantStatus, CandidatesPresentationModel presentation)
     : base(presentation)
 {
     JobAdId         = jobAdId;
     JobAdStatus     = jobAdStatus;
     ApplicantStatus = applicantStatus;
 }
Пример #5
0
        protected string GetCandidatesLink(ApplicantStatus status, JobAd ad)
        {
            var counts = GetCountsForJobAd(LoggedInEmployer, ad);

            return(counts[status] == 0
                ? status.ToString()
                : string.Format("<a href=\"{0}\">{1}</a>", GetCandidatesUrl(LoggedInEmployer, ad, status), status));
        }
Пример #6
0
        private static string GetApplicantsText(Guid?jobAdId, int applicants, ApplicantStatus status)
        {
            if (applicants == 0)
            {
                return(status.ToString());
            }
            var url = new ApplicationUrl("~/employers/candidates/manage/" + jobAdId, new ReadOnlyQueryString("status", status.ToString()));

            return("<a href=\"" + url.PathAndQuery + "\">" + status + "</a>");
        }
Пример #7
0
        public ActionResult Partial(ApplicantStatus status, MemberSearchSortCriteria sortOrder, CandidatesPresentationModel presentation)
        {
            var navigation = (ManageCandidatesNavigation)EmployerContext.CurrentCandidates;

            var model = JobAdResults(navigation.JobAdId, status, sortOrder, presentation);

            if (model == null)
            {
                return(NotFound("job ad", "id", navigation.JobAdId));
            }

            return(PartialView("CandidateList", model));
        }
Пример #8
0
        private ReadOnlyUrl GetManageCandidatesUrl(Guid jobAdId, ApplicantStatus status, int?page, int?items)
        {
            var queryString = new QueryString();

            queryString["status"] = status.ToString();
            if (page != null)
            {
                queryString.Add("page", page.Value.ToString(CultureInfo.InvariantCulture));
            }
            if (items != null)
            {
                queryString.Add("items", items.Value.ToString(CultureInfo.InvariantCulture));
            }

            return(new ReadOnlyApplicationUrl(_baseManageCandidatesUrl, jobAdId.ToString(), queryString));
        }
Пример #9
0
        public static string GetCandidateStatusChangeMessage(ProfessionalView view, ApplicantStatus newStatus)
        {
            string verb;

            switch (newStatus)
            {
            case ApplicantStatus.Rejected:
                verb = "rejected";
                break;

            case ApplicantStatus.Shortlisted:
                verb = "shortlisted";
                break;

            default:
                throw new ArgumentException("Unexpected value of newStatus: " + newStatus);
            }

            return("\"" + HtmlUtil.TextToHtml(view.GetFullNameDisplayText()) + "\" has been " + verb + ".");
        }
Пример #10
0
 private ReadOnlyUrl GetCandidatesUrl(Employer employer, JobAd ad, ApplicantStatus status)
 {
     return(HaveCandidates(employer, ad) ? GetApplicantsUrl(ad, status) : new ReadOnlyUrl(GetSuggestionsUrl(ad).ToString()));
 }
Пример #11
0
        private static int GetApplicationStatusCount(this IJobAd jobAd, IEnumerable <ApplicantList> applicantLists, IDictionary <Guid, IDictionary <ApplicantStatus, int> > counts, ApplicantStatus status)
        {
            var applicantList = (from a in applicantLists
                                 where a.Id == jobAd.Id
                                 select a).SingleOrDefault();

            return(applicantList.GetApplicationStatusCount(counts, status));
        }
Пример #12
0
        IList <Guid> IMemberActivityFiltersQuery.GetManagedExcludeMemberIds(IEmployer employer, Guid jobAdId, ApplicantStatus status, MemberSearchQuery query)
        {
            // Exclude filters.

            var memberIds = GetExcludeMemberIds(employer, query, null);

            // Exclude all blocked candidates.

            var candidateIds = _candidateBlockListsQuery.GetBlockedCandidateIds(employer);

            if (candidateIds.Count > 0)
            {
                memberIds = GetExcludeList(memberIds, candidateIds);
            }

            return(memberIds == null ? null : memberIds.ToList());
        }
Пример #13
0
 public static bool IsTechnicalInterviewDisabled(ApplicantStatus applicantStatus)
 {
     return(applicantStatus == ApplicantStatus.ScreeningRejected ||
            applicantStatus == ApplicantStatus.PhoneInterviewRejected ||
            applicantStatus == ApplicantStatus.HRRejected);
 }
Пример #14
0
 public void EditApplicantStatus(Applicant applicant, ApplicantStatus applicantStatus)
 {
     applicant.Status = applicantStatus;
     _db.SaveChanges();
 }
Пример #15
0
 void IContenderListsCommand.ChangeStatus(Guid listId, IEnumerable <Guid> applicantIds, ApplicantStatus status)
 {
     _repository.ChangeStatus(listId, applicantIds, status);
 }
Пример #16
0
 void IContenderListsCommand.ChangeStatus(Guid listId, Guid applicantId, ApplicantStatus status)
 {
     _repository.ChangeStatus(listId, applicantId, status);
 }
Пример #17
0
 void IContenderListsCommand.CreateEntries(Guid listId, IEnumerable <Guid> contenderIds, ApplicantStatus status)
 {
     _repository.CreateEntries(listId, DateTime.Now, contenderIds, status);
 }
Пример #18
0
 IList <Guid> IJobAdApplicantsQuery.GetApplicantIds(Guid jobAdId, ApplicantStatus status)
 {
     return(_contenderListsQuery.GetListedContenderIds(jobAdId, NotIfInListTypes, status));
 }
Пример #19
0
 protected void AssertCandidates(JobAd jobAd, Member[] expectedMembers, ApplicantStatus expectedStatus)
 {
     AssertCandidates(expectedMembers, _jobAdApplicantsQuery.GetApplicantIds(jobAd.Id, expectedStatus));
 }
Пример #20
0
        private static int GetApplicationStatusCount(this IHasId <Guid> applicantList, IDictionary <Guid, IDictionary <ApplicantStatus, int> > counts, ApplicantStatus status)
        {
            if (applicantList == null || !counts.ContainsKey(applicantList.Id))
            {
                return(0);
            }

            return(counts[applicantList.Id][status]);
        }
Пример #21
0
 private static ReadOnlyUrl GetApplicantsUrl(IJobAd ad, ApplicantStatus status)
 {
     return(JobAdsRoutes.ManageJobAdCandidates.GenerateUrl(new { jobAdId = ad.Id, status }));
 }
Пример #22
0
        MemberSearchExecution IExecuteMemberSearchCommand.SearchManaged(IEmployer employer, Guid jobAdId, ApplicantStatus status, MemberSearchSortCriteria sortCriteria, Range range)
        {
            var criteria = new MemberSearchCriteria
            {
                SortCriteria = sortCriteria ?? new MemberSearchSortCriteria {
                    SortOrder = ManagedCandidatesDefaultSortOrder
                },
                HasResume            = null,
                IsActivated          = null,
                IsContactable        = null,
                CandidateStatusFlags = CandidateStatusFlags.All,
            };

            return(Search(employer, criteria, range, (s, e, o, q) => s.SearchManaged(e, o, jobAdId, status, q)));
        }
Пример #23
0
 private JsonJobAdModel UndoRejectCandidates(Guid jobAdId, ApplicantStatus previousStatus, params Member[] members)
 {
     return(CallApi("undorejectcandidates", jobAdId, members, previousStatus));
 }
Пример #24
0
 public static bool IsPhoneInterviewDisabled(ApplicantStatus applicantStatus)
 {
     return(applicantStatus == ApplicantStatus.ScreeningRejected);
 }
Пример #25
0
        IDictionary <ApplicantStatus, int> IJobAdApplicantsCommand.UndoRejectApplicants(IEmployer employer, JobAdEntry jobAd, IEnumerable <Guid> applicantIds, ApplicantStatus statusToReturnTo)
        {
            // Ensure the list exists.

            var list = EnsureList(jobAd);

            if (!CanAccessList(employer, list))
            {
                throw new AddApplicantPermissionsException(employer, list.Id);
            }

            var entries = _contenderListsQuery.GetEntries <ApplicantListEntry>(list.Id, null, applicantIds);

            // Move the list entries back to the specified status (s/be new or shortlisted).

            var applicantsToUpdate = from e in entries
                                     where e.ApplicantStatus == ApplicantStatus.Rejected
                                     select e.ApplicantId;

            _contenderListsCommand.ChangeStatus(list.Id, applicantsToUpdate, statusToReturnTo);

            return(_jobAdApplicantsQuery.GetApplicantCounts(employer, list));
        }
Пример #26
0
 private ManageCandidatesListModel Search(IEmployer employer, Guid jobAdId, ApplicantStatus status, MemberSearchSortCriteria sortCriteria, CandidatesPresentationModel presentation)
 {
     return(Search <ManageCandidatesListModel>(employer, presentation, (e, r) => _executeMemberSearchCommand.SearchManaged(e, jobAdId, status, sortCriteria, r)));
 }
Пример #27
0
 IList <Guid> IMemberActivityFiltersQuery.GetManagedExcludeMemberIds(IEmployer employer, Guid jobAdId, ApplicantStatus status, MemberSearchQuery query)
 {
     throw new NotImplementedException();
 }
Пример #28
0
        IList <Guid> IMemberActivityFiltersQuery.GetManagedIncludeMemberIds(IEmployer employer, Guid jobAdId, ApplicantStatus status, MemberSearchQuery query)
        {
            // Include those that are applicants for the job.

            var memberIds = _jobAdApplicantsQuery.GetApplicantIds(jobAdId, status);

            // Include filters.

            return(GetIncludeMemberIds(employer, query, memberIds));
        }
Пример #29
0
 public async Task<ActionResult> JobSeekerMyJob(ApplicantStatus applicantStatus)
 {
      GetCurrentUser();
     ViewData["ApplicantStatus"] = applicantStatus;
     return View();
 }
Пример #30
0
 MemberSearchResults IMemberSearchService.SearchManaged(Guid?employerId, Guid?organisationId, Guid jobAdId, ApplicantStatus status, MemberSearchQuery query)
 {
     return(Search(
                employerId,
                organisationId,
                query,
                (e, q) => _memberActivityFiltersQuery.GetManagedIncludeMemberIds(e, jobAdId, status, q),
                (e, q) => _memberActivityFiltersQuery.GetManagedExcludeMemberIds(e, jobAdId, status, q)));
 }
Пример #31
0
 IList <Guid> IContenderListsQuery.GetListedContenderIds(Guid listId, IEnumerable <int> notIfAlsoInListTypes, ApplicantStatus status)
 {
     return(_repository.GetListedContenderIds(listId, notIfAlsoInListTypes, status));
 }