예제 #1
0
        public ActionResult New()
        {
            var accountManagers = GetAccountManagers(null);

            return(View(new OrganisationModel
            {
                Organisation = new VerifiedOrganisation {
                    AccountManagerId = CurrentAdministrator.Id, VerifiedById = CurrentAdministrator.Id
                },
                AccountManagers = accountManagers,
                VerifiedByAccountManager = CurrentAdministrator,
                Communities = _communitiesQuery.GetCommunities(),
            }));
        }
예제 #2
0
        private FolderListModel FolderResults(Guid folderId, MemberSearchSortCriteria sortCriteria, CandidatesPresentationModel presentation)
        {
            var employer = CurrentEmployer;
            var folder   = _candidateFoldersQuery.GetFolder(employer, folderId);

            if (folder == null)
            {
                return(null);
            }

            // Do a search to get the candidates in this folder.

            var model = Search(employer, folderId, sortCriteria, presentation);

            model.Folder     = folder;
            model.FolderData = new FolderDataModel
            {
                Count     = model.Results.TotalCandidates,
                CanDelete = _candidateFoldersCommand.CanDeleteFolder(employer, folder),
                CanRename = _candidateFoldersCommand.CanRenameFolder(employer, folder),
            };
            model.SortOrders    = SortOrders;
            model.Communities   = _communitiesQuery.GetCommunities().ToDictionary(c => c.Id, c => c);
            model.Verticals     = _verticalsQuery.GetVerticals().ToDictionary(v => v.Id, v => v);
            model.CurrentSearch = EmployerContext.CurrentSearch;

            return(model);
        }
예제 #3
0
        private TListModel GetSearchList <TListModel>(TListModel searchList, bool canSearchByName, bool canSelectCommunity, bool?createEmailAlert)
            where TListModel : SearchListModel
        {
            // Only include communities for which verticals are not deleted.

            searchList.SortOrders  = SortOrders;
            searchList.Verticals   = _verticalsQuery.GetVerticals().ToDictionary(v => v.Id, v => v);
            searchList.Communities = (from c in _communitiesQuery.GetCommunities() where searchList.Verticals.ContainsKey(c.Id) select c).ToDictionary(c => c.Id, c => c);

            searchList.Countries          = _locationQuery.GetCountries();
            searchList.CanSearchByName    = canSearchByName;
            searchList.CanSelectCommunity = canSelectCommunity;
            searchList.CreateEmailAlert   = createEmailAlert ?? false;
            searchList.IsFirstSearch      = EmployerContext.Searches <= 1;
            searchList.ShowHelpPrompt     = false;

            searchList.Industries      = _industriesQuery.GetIndustries();
            searchList.Distances       = Reference.Distances;
            searchList.DefaultDistance = MemberSearchCriteria.DefaultDistance;
            searchList.DefaultCountry  = ActivityContext.Location.Country;
            searchList.Recencies       = Recencies;
            searchList.DefaultRecency  = MemberSearchCriteria.DefaultRecency;
            searchList.MinSalary       = MemberSearchCriteria.MinSalary;
            searchList.MaxSalary       = MemberSearchCriteria.MaxSalary;
            searchList.StepSalary      = MemberSearchCriteria.StepSalary;

            return(searchList);
        }
예제 #4
0
        private ManageCandidatesListModel JobAdResults(Guid jobAdId, ApplicantStatus?status, MemberSearchSortCriteria sortCriteria, CandidatesPresentationModel presentation)
        {
            var employer = CurrentEmployer;
            var jobAd    = _jobAdsQuery.GetJobAd <JobAd>(jobAdId);

            if (jobAd == null)
            {
                return(null);
            }

            var searchStatus = status ?? DefaultStatus;
            var model        = Search(employer, jobAdId, searchStatus, sortCriteria, presentation);

            if (model.Results.TotalCandidates == 0 && status == null)
            {
                searchStatus = FallbackStatus;
                model        = Search(employer, jobAdId, searchStatus, sortCriteria, presentation);
            }

            // Indicate those who are rejected.

            model.ApplicantStatus = searchStatus;
            model.Results.RejectedCandidateIds = searchStatus == ApplicantStatus.Rejected ? model.Results.CandidateIds : new List <Guid>();

            var applicantList = _jobAdApplicantsQuery.GetApplicantList(employer, jobAd);
            var counts        = _jobAdApplicantsQuery.GetApplicantCounts(employer, applicantList);

            model.JobAd = new JobAdDataModel
            {
                Id              = jobAdId,
                Title           = jobAd.Title,
                Status          = jobAd.Status,
                ApplicantCounts = new ApplicantCountsModel
                {
                    New         = counts[ApplicantStatus.New],
                    Rejected    = counts[ApplicantStatus.Rejected],
                    ShortListed = counts[ApplicantStatus.Shortlisted],
                },
                Applications = _jobAdApplicantsQuery.GetApplicationsByPositionId(jobAd.Id).ToDictionary(a => a.ApplicantId, a => a),
            };
            model.SortOrders  = new[] { MemberSortOrder.DateUpdated, MemberSortOrder.Flagged, MemberSortOrder.FirstName }.OrderBy(o => o.ToString()).ToArray();
            model.Communities = _communitiesQuery.GetCommunities().ToDictionary(c => c.Id, c => c);
            model.Verticals   = _verticalsQuery.GetVerticals().ToDictionary(v => v.Id, v => v);

            EmployerContext.CurrentSearch     = null;
            EmployerContext.CurrentCandidates = new ManageCandidatesNavigation(jobAdId, model.JobAd.Status, searchStatus, presentation);

            return(model);
        }
예제 #5
0
 private SuggestedCandidatesListModel GetSearchList(SuggestedCandidatesListModel searchList)
 {
     searchList.SortOrders      = SortOrders;
     searchList.Communities     = _communitiesQuery.GetCommunities().ToDictionary(c => c.Id, c => c);
     searchList.Verticals       = _verticalsQuery.GetVerticals().ToDictionary(v => v.Id, v => v);
     searchList.Countries       = _locationQuery.GetCountries();
     searchList.Industries      = _industriesQuery.GetIndustries();
     searchList.Distances       = Reference.Distances;
     searchList.DefaultDistance = MemberSearchCriteria.DefaultDistance;
     searchList.DefaultCountry  = ActivityContext.Location.Country;
     searchList.Recencies       = Recencies;
     searchList.DefaultRecency  = MemberSearchCriteria.DefaultRecency;
     searchList.MinSalary       = MemberSearchCriteria.MinSalary;
     searchList.MaxSalary       = MemberSearchCriteria.MaxSalary;
     searchList.StepSalary      = MemberSearchCriteria.StepSalary;
     return(searchList);
 }
예제 #6
0
        private FlagListListModel FlagListResults(MemberSearchSortCriteria sortCriteria, CandidatesPresentationModel presentation)
        {
            var employer = CurrentEmployer;
            var flagList = _candidateFlagListsQuery.GetFlagList(employer);

            if (flagList == null)
            {
                return(null);
            }

            // Do a search to get the candidates in this flagList.

            var model = Search(employer, sortCriteria, presentation);

            model.FlagList      = flagList;
            model.SortOrders    = SortOrders;
            model.Communities   = _communitiesQuery.GetCommunities().ToDictionary(c => c.Id, c => c);
            model.Verticals     = _verticalsQuery.GetVerticals().ToDictionary(v => v.Id, v => v);
            model.CurrentSearch = EmployerContext.CurrentSearch;
            return(model);
        }
예제 #7
0
        private FlagListListModel FlagListResults(JobAdSearchSortCriteria sortCriteria, JobAdsPresentationModel presentation)
        {
            var member   = CurrentMember;
            var flagList = _jobAdFlagListsQuery.GetFlagList(member);

            if (flagList == null)
            {
                return(null);
            }

            // Do a search to get the jobads in this flagList.

            var model = Sort(member, sortCriteria, presentation);

            model.FlagList    = flagList;
            model.Folders     = GetFoldersModel();
            model.BlockLists  = GetBlockListsModel();
            model.SortOrders  = SortOrders;
            model.Communities = _communitiesQuery.GetCommunities().ToDictionary(c => c.Id, c => c);
            model.Verticals   = _verticalsQuery.GetVerticals().ToDictionary(v => v.Id, v => v);
            return(model);
        }
예제 #8
0
        protected FolderListModel FolderResults(Guid folderId, JobAdSearchSortCriteria sortCriteria, JobAdsPresentationModel presentation)
        {
            var member = CurrentMember;
            var folder = _jobAdFoldersQuery.GetFolder(member, folderId);

            if (folder == null)
            {
                return(null);
            }

            // Do a search to get the jobads in this folder.

            var model = Sort(member, folderId, sortCriteria, presentation);

            model.Folder      = folder;
            model.Folders     = GetFoldersModel();
            model.BlockLists  = GetBlockListsModel();
            model.SortOrders  = SortOrders;
            model.Communities = _communitiesQuery.GetCommunities().ToDictionary(c => c.Id, c => c);
            model.Verticals   = _verticalsQuery.GetVerticals().ToDictionary(v => v.Id, v => v);
            return(model);
        }
예제 #9
0
        private BlockListListModel BlockListResults(BlockListType blockListType, MemberSearchSortCriteria sortCriteria, CandidatesPresentationModel presentation)
        {
            var employer  = CurrentEmployer;
            var blockList = blockListType == BlockListType.Temporary
                ? _candidateBlockListsQuery.GetTemporaryBlockList(employer)
                : _candidateBlockListsQuery.GetPermanentBlockList(employer);

            if (blockList == null)
            {
                return(null);
            }

            // Do a search to get the candidates in this blockList.

            var model = Search(employer, blockList.Id, sortCriteria, presentation);

            model.BlockList     = blockList;
            model.SortOrders    = SortOrders;
            model.Communities   = _communitiesQuery.GetCommunities().ToDictionary(c => c.Id, c => c);
            model.Verticals     = _verticalsQuery.GetVerticals().ToDictionary(v => v.Id, v => v);
            model.CurrentSearch = EmployerContext.CurrentSearch;
            return(model);
        }
예제 #10
0
        private void InitialiseList()
        {
            ddlCommunity.Items.Clear();
            ddlCommunity.Items.Add(new ListItem(string.Empty, null));

            var communities = _communitiesQuery.GetCommunities();

            // Need to check whether any of the verticals associated with the communities have been deleted.

            var verticalIds = (from v in _verticalsQuery.GetVerticals() select v.Id).ToArray();

            communities = (from c in communities where verticalIds.Contains(c.Id) select c).ToList();

            foreach (var community in communities)
            {
                // Only add the community if it has members.

                if (community.HasMembers)
                {
                    ddlCommunity.Items.Add(new ListItem(community.Name, community.Id.ToString()));
                }
            }
        }
예제 #11
0
        private TListModel GetSearchList <TListModel>(TListModel searchList)
            where TListModel : SearchListModel
        {
            searchList.AncillaryData = GetAncillaryData();

            // Only include communities for which verticals are not deleted.

            searchList.SortOrders  = SortOrders;
            searchList.Verticals   = _verticalsQuery.GetVerticals().ToDictionary(v => v.Id, v => v);
            searchList.Communities = (from c in _communitiesQuery.GetCommunities() where searchList.Verticals.ContainsKey(c.Id) select c).ToDictionary(c => c.Id, c => c);
            searchList.Folders     = GetFoldersModel();
            searchList.BlockLists  = GetBlockListsModel();
            searchList.Industries  = _industriesQuery.GetIndustries();

            searchList.IsFirstSearch = MemberContext.IsFirstSearch;
            if (searchList.IsFirstSearch)
            {
                MemberContext.IsFirstSearch = false;
            }

            searchList.IsSavedSearch = false;

            return(searchList);
        }
예제 #12
0
 public ActionResult Index()
 {
     return(View(_communitiesQuery.GetCommunities()));
 }
예제 #13
0
 private void AssertCommunityId(MemberSearchCriteria criteria)
 {
     AssertCommunityId(true, _communitiesQuery.GetCommunities(), criteria.CommunityId);
 }
예제 #14
0
        private CampaignCriteriaModel CreateCampaignCriteria(Campaign campaign, Criteria criteria)
        {
            // Depends on criteria type.

            if (criteria is EmployerSearchCriteria)
            {
                return(new CampaignEmployerCriteriaModel(campaign, (EmployerSearchCriteria)criteria, IsReadOnly(campaign), _industriesQuery.GetIndustries()));
            }
            return(new CampaignMemberCriteriaModel(campaign, (MemberSearchCriteria)criteria, IsReadOnly(campaign), _industriesQuery.GetIndustries(), _communitiesQuery.GetCommunities(), _locationQuery.GetCountries()));
        }