Beispiel #1
0
        public ActionResult ContactDetails()
        {
            var member    = CurrentMember;
            var candidate = _candidatesQuery.GetCandidate(member.Id);
            var resume    = candidate.ResumeId == null ? null : _resumesQuery.GetResume(candidate.ResumeId.Value);

            return(View(CreateContactDetailsModel(member, candidate, resume, _locationQuery.GetCountries())));
        }
Beispiel #2
0
        private void DeconvertLocation(JobAdSearchCriteria criteria, IGetValues values)
        {
            var location = values.GetStringValue(JobAdSearchCriteriaKeys.Location);

            Country country   = null;
            var     countryId = values.GetIntValue(JobAdSearchCriteriaKeys.CountryId);

            if (countryId != null)
            {
                country = _locationQuery.GetCountry(countryId.Value);
            }
            else
            {
                // Try the old value.

                countryId = values.GetIntValue(JobAdSearchCriteriaKeys.Country);
                if (countryId != null)
                {
                    country = _locationQuery.GetCountry(countryId.Value);
                }
            }

            if (country != null)
            {
                criteria.Location = _locationQuery.ResolveLocation(country, location);
            }
            else if (!string.IsNullOrEmpty(location))
            {
                criteria.Location = _locationQuery.ResolveLocation(_locationQuery.GetCountries()[0], location);
            }

            criteria.Distance = values.GetIntValue(JobAdSearchCriteriaKeys.Distance);
        }
Beispiel #3
0
        private HomeModel CreateHomeModel(UserType preferredUserType, Login login, MemberJoin join, bool acceptTerms)
        {
            var country = ActivityContext.Location.Country;

            var qna = _resourcesQuery.GetQnA(_resourcesQuery.GetFeaturedQnAs().Single().ResourceId);

            return(new HomeModel
            {
                PreferredUserType = preferredUserType,
                Login = login,
                Join = join,
                AcceptTerms = acceptTerms,
                Reference = new ReferenceModel
                {
                    MinSalary = JobAdSearchCriteria.MinSalary,
                    MaxSalary = JobAdSearchCriteria.MaxSalary,
                    StepSalary = JobAdSearchCriteria.StepSalary,
                    MinHourlySalary = JobAdSearchCriteria.MinHourlySalary,
                    MaxHourlySalary = JobAdSearchCriteria.MaxHourlySalary,
                    StepHourlySalary = JobAdSearchCriteria.StepHourlySalary,
                    Industries = GetIndustries(),
                    FeaturedStatistics = GetFeaturedStatistics(),
                    FeaturedEmployers = GetFeaturedEmployers(),
                    FeaturedJobAds = GetFeaturedJobAds(),
                    FeaturedCandidateSearches = GetFeaturedCandidateSearches(),
                    Countries = _locationQuery.GetCountries(),
                    CountrySubdivisions = (from s in _locationQuery.GetCountrySubdivisions(country) where !s.IsCountry select s).ToList(),
                    Regions = _locationQuery.GetRegions(country),
                    DefaultCountry = country,
                    FeaturedAnsweredQuestion = qna,
                    Categories = _resourcesQuery.GetCategories(),
                }
            });
        }
Beispiel #4
0
 private HomeModel CreateHomeModel(Login login, bool acceptTerms)
 {
     return(new HomeModel
     {
         Login = login,
         AcceptTerms = acceptTerms,
         Reference = new ReferenceModel
         {
             KeywordLocationSearch = new KeywordLocationSearchModel
             {
                 Criteria = new MemberSearchCriteria
                 {
                     Distance = MemberSearchCriteria.DefaultDistance,
                     Location = _locationQuery.ResolveLocation(ActivityContext.Location.Country, null),
                 },
                 CanSearchByName = false,
                 Distances = Reference.Distances,
                 DefaultDistance = MemberSearchCriteria.DefaultDistance,
                 Countries = _locationQuery.GetCountries(),
                 DefaultCountry = ActivityContext.Location.Country,
             },
         },
         AppStoreUrl = AppStoreUrl,
     });
 }
Beispiel #5
0
        private SearchAncillaryModel GetAncillaryData()
        {
            var country = ActivityContext.Location.Country;

            var ancillaryModel = new SearchAncillaryModel
            {
                Countries           = _locationQuery.GetCountries(),
                Industries          = _industriesQuery.GetIndustries(),
                Distances           = Reference.Distances,
                DefaultDistance     = JobAdSearchCriteria.DefaultDistance,
                DefaultCountry      = ActivityContext.Location.Country,
                Recencies           = Recencies,
                DefaultRecency      = JobAdSearchCriteria.DefaultRecency,
                MaxRecency          = JobAdSearchCriteria.MaxRecency,
                MinSalary           = JobAdSearchCriteria.MinSalary,
                MaxSalary           = JobAdSearchCriteria.MaxSalary,
                StepSalary          = JobAdSearchCriteria.StepSalary,
                MinHourlySalary     = JobAdSearchCriteria.MinHourlySalary,
                MaxHourlySalary     = JobAdSearchCriteria.MaxHourlySalary,
                StepHourlySalary    = JobAdSearchCriteria.StepHourlySalary,
                CountrySubdivisions = (from s in _locationQuery.GetCountrySubdivisions(country)
                                       where !s.IsCountry
                                       select s).ToList(),
                Regions = _locationQuery.GetRegions(country)
            };

            return(ancillaryModel);
        }
Beispiel #6
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);
        }
Beispiel #7
0
        private PersonalDetailsModel GetPersonalDetailsModel(Guid?memberId, PersonalDetailsMemberModel member, PersonalDetailsPasswordsModel passwords)
        {
            var model = GetModel <PersonalDetailsModel>(memberId);

            model.Member    = member;
            model.Passwords = passwords;

            var communityId = ActivityContext.Community.Id;

            model.AffiliationItems = communityId != null && memberId != null
                ? _memberAffiliationsQuery.GetItems(memberId.Value, communityId.Value)
                : null;

            model.Reference = new PersonalDetailsReferenceModel
            {
                Countries      = _locationQuery.GetCountries(),
                DefaultCountry = ActivityContext.Location.Country,
                SalaryRates    = SalaryRates,
            };

            return(model);
        }
Beispiel #8
0
 private EditJobAdModel GetEditJobAdModel(bool isNew, JobAdModel jobAdModel)
 {
     return(new EditJobAdModel
     {
         IsNew = isNew,
         JobAd = jobAdModel,
         Reference = new JobAdReferenceModel
         {
             DefaultCountry = ActivityContext.Location.Country,
             Countries = _locationQuery.GetCountries(),
             Industries = _industriesQuery.GetIndustries(),
         }
     });
 }
Beispiel #9
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);
 }
Beispiel #10
0
        private void DeconvertLocation(JobAdModel jobAd, IGetValues values)
        {
            var location = values.GetStringValue(Keys.Location);

            Country country   = null;
            var     countryId = values.GetIntValue(Keys.CountryId);

            if (countryId != null)
            {
                country = _locationQuery.GetCountry(countryId.Value);
            }

            if (country != null)
            {
                jobAd.Location = _locationQuery.ResolveLocation(country, location);
            }
            else if (!string.IsNullOrEmpty(location))
            {
                jobAd.Location = _locationQuery.ResolveLocation(_locationQuery.GetCountries()[0], location);
            }
        }
Beispiel #11
0
        public ActionResult Home()
        {
            var country = ActivityContext.Location.Country;

            return(View(new HomeModel
            {
                Reference = new ReferenceModel
                {
                    MinSalary = JobAdSearchCriteria.MinSalary,
                    MaxSalary = JobAdSearchCriteria.MaxSalary,
                    StepSalary = JobAdSearchCriteria.StepSalary,
                    MinHourlySalary = JobAdSearchCriteria.MinHourlySalary,
                    MaxHourlySalary = JobAdSearchCriteria.MaxHourlySalary,
                    StepHourlySalary = JobAdSearchCriteria.StepHourlySalary,
                    Countries = _locationQuery.GetCountries(),
                    CountrySubdivisions = (from s in _locationQuery.GetCountrySubdivisions(country) where !s.IsCountry select s).ToList(),
                    Regions = _locationQuery.GetRegions(country),
                    DefaultCountry = country,
                },
                RecentSearches = GetRecentSearchesModel()
            }));
        }
Beispiel #12
0
        public ActionResult Edit(Guid id)
        {
            var community = _communitiesQuery.GetCommunity(id);

            if (community == null)
            {
                return(NotFound("community", "id", id));
            }

            var vertical = _verticalsCommand.GetVertical(id);

            if (vertical == null)
            {
                return(NotFound("vertical", "id", id));
            }

            return(View(new CommunityModel
            {
                Community = community,
                Vertical = vertical,
                Countries = _locationQuery.GetCountries()
            }));
        }
        private void DeconvertLocation(MemberSearchCriteria criteria, IGetValues values)
        {
            var location = values.GetStringValue(MemberSearchCriteriaKeys.Location);

            Country country   = null;
            var     countryId = values.GetIntValue(MemberSearchCriteriaKeys.CountryId);

            if (countryId != null)
            {
                country = _locationQuery.GetCountry(countryId.Value);
            }

            if (country != null)
            {
                criteria.Location = _locationQuery.ResolveLocation(country, location);
            }
            else if (!string.IsNullOrEmpty(location))
            {
                criteria.Location = _locationQuery.ResolveLocation(_locationQuery.GetCountries()[0], location);
            }

            criteria.Distance = values.GetIntValue(MemberSearchCriteriaKeys.Distance);

            var includeRelocating = values.GetBooleanValue(MemberSearchCriteriaKeys.IncludeRelocating);

            if (includeRelocating != null)
            {
                criteria.IncludeRelocating = includeRelocating.Value;
            }

            var includeInternational = values.GetBooleanValue(MemberSearchCriteriaKeys.IncludeInternational);

            if (includeInternational != null)
            {
                criteria.IncludeInternational = includeInternational.Value;
            }
        }
Beispiel #14
0
        public void BuildUp(ILocationQuery locationQuery, bool includeDistances)
        {
            Clear();

            // Create points in our metric space.
            // The points are Localities and empty Countries.
            // The distance between an empty countries and any other entity is presumed to be infinite.

            var localities     = new List <Locality>();
            var emptyCountries = new List <Country>();

            foreach (var country in locationQuery.GetCountries())
            {
                var countryLocalities = locationQuery.GetLocalities(country);
                if (countryLocalities.Count > 0)
                {
                    localities.AddRange(countryLocalities);
                }
                else
                {
                    emptyCountries.Add(country);
                }
            }

            _localityCount = localities.Count;
            var pointCount = localities.Count + emptyCountries.Count;

            _points = Enumerable.Range(0, pointCount);

            if (includeDistances)
            {
                // Calculate distances between localities.

                _distances = new short[_localityCount][];

                for (var i = 0; i < _localityCount; i++)
                {
                    _distances[i] = new short[i];

                    for (var j = 0; j < i; j++)
                    {
                        _distances[i][j] = (short)Math.Round(EarthDistance(
                                                                 localities[i].Centroid.Latitude,
                                                                 localities[i].Centroid.Longitude,
                                                                 localities[j].Centroid.Latitude,
                                                                 localities[j].Centroid.Longitude));
                    }
                }
            }

            // Add Localities.

            _subsets = new Dictionary <int, HashSet <int> >();

            for (var i = 0; i < _localityCount; i++)
            {
                var subset = new HashSet <int> {
                    i
                };
                _subsets.Add(localities[i].Id, subset);
            }

            // Add empty Countries.

            for (var i = 0; i < emptyCountries.Count; i++)
            {
                var subset = new HashSet <int> {
                    _localityCount + i
                };
                _subsets.Add(emptyCountries[i].Id, subset);
            }

            // Add CountrySubdivisions.

            foreach (var locality in localities)
            {
                foreach (var countrySubdivision in locality.CountrySubdivisions)
                {
                    HashSet <int> subset;
                    if (!_subsets.TryGetValue(countrySubdivision.Id, out subset))
                    {
                        subset = new HashSet <int>();
                        _subsets.Add(countrySubdivision.Id, subset);
                    }

                    subset.Add(GetLocalityPoint(locality.Id));
                }
            }

#if DEBUG
            // Check that there are no empty CountrySubdivisions.

            foreach (var country in locationQuery.GetCountries())
            {
                foreach (var countrySubdivision in locationQuery.GetCountrySubdivisions(country))
                {
                    if (countrySubdivision.Id != 1)
                    {
                        Debug.Assert(_subsets[countrySubdivision.Id].Count > 0);
                    }
                }
            }
#endif

            // Add Countries.

            foreach (var country in locationQuery.GetCountries())
            {
                var subset = new HashSet <int>();

                foreach (var locality in locationQuery.GetLocalities(country))
                {
                    subset.Add(GetLocalityPoint(locality.Id));
                }

                if (subset.Count > 0)
                {
                    _subsets.Add(country.Id, subset);
                }
            }

            // Add Regions.

            foreach (var country in locationQuery.GetCountries())
            {
                foreach (var region in locationQuery.GetRegions(country))
                {
                    var subset = new HashSet <int>();

                    foreach (Locality locality in locationQuery.GetLocalities(region))
                    {
                        subset.Add(GetLocalityPoint(locality.Id));
                    }

                    Debug.Assert(subset.Count > 0);
                    _subsets.Add(region.Id, subset);
                }
            }

            _maxPointSetId = _subsets.Max(kvp => kvp.Key);
        }
Beispiel #15
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()));
        }