示例#1
0
        protected IList <Employer> CreateEmployers(int start, int count, EmployerSubRole subRole, IOrganisation organisation, params Industry[] industries)
        {
            var employers = new List <Employer>();

            for (var index = start; index < start + count; ++index)
            {
                employers.Add(CreateEmployer(index, subRole, organisation, industries));
            }
            return(employers);
        }
示例#2
0
        private Employer CreateEmployer(int index, EmployerSubRole subRole)
        {
            var employer = _employerAccountsCommand.CreateTestEmployer(index, _organisationsCommand.CreateTestOrganisation(index));

            if (employer.SubRole != subRole)
            {
                employer.SubRole = subRole;
                _employerAccountsCommand.UpdateEmployer(employer);
            }

            return(employer);
        }
示例#3
0
        protected Employer CreateEmployer(int index, EmployerSubRole subRole, IOrganisation organisation, params Industry[] industries)
        {
            var employer = _employerAccountsCommand.CreateTestEmployer(string.Format(EmployerUserIdFormat, index), _organisationsCommand.CreateTestOrganisation(0));

            employer.SubRole = subRole;
            if (organisation != null)
            {
                employer.Organisation = organisation;
            }
            if (industries != null)
            {
                employer.Industries = industries.ToList();
            }
            _employerAccountsCommand.UpdateEmployer(employer);

            _allocationsCommand.CreateAllocation(new Allocation {
                OwnerId = employer.Id, CreditId = _creditsQuery.GetCredit <ContactCredit>().Id, ExpiryDate = DateTime.Now.AddDays(100), InitialQuantity = 100
            });
            return(employer);
        }
示例#4
0
 protected IList <Employer> CreateEmployers(int start, int count, EmployerSubRole subRole)
 {
     return(CreateEmployers(start, count, subRole, null, null));
 }
示例#5
0
 protected Employer CreateEmployer(int index, EmployerSubRole subRole)
 {
     return(CreateEmployer(index, subRole, null, null));
 }
示例#6
0
        private void Execute(DateTime start, DateTime end, IList <Employer> employers, EmployerSubRole subRole)
        {
            const string method = "Execute";

            // Grab the number of new candidates.

            var joinedUserIds             = _accountReportsQuery.GetNewUserIds(UserType.Member, new DateTimeRange(start, end));
            var updatedResumeCandidateIds = _resumeReportsQuery.GetUpdatedResumeCandidateIds(new DateTimeRange(start, end));
            var newCandidates             = joinedUserIds.Union(updatedResumeCandidateIds).Count();

            // Only send emails if in fact there are new candidates.

            if (newCandidates > 0)
            {
                employers = (from e in employers where e.SubRole == subRole select e).ToList();

                EventSource.Raise(Event.Information, method, string.Format("Sending usage reminder emails to {0} {1}...", employers.Count, subRole == EmployerSubRole.Employer ? "employers" : "recruiters"));

                foreach (var employer in employers.OrderBy(e => e.EmailAddress.Address))
                {
                    try
                    {
                        // Only send an email if this employer has not already received one.

                        _emailsCommand.TrySend(new EmployerUsageEmail(employer, newCandidates), DateTime.MinValue);
                    }
                    catch (Exception ex)
                    {
                        EventSource.Raise(Event.Error, method, string.Format("Failed to send a usage reminder email to '{0}'", employer), ex, new StandardErrorHandler());
                    }
                }

                EventSource.Raise(Event.Information, method, string.Format("Finished sending {0} usage reminder emails to {1}.", employers.Count, subRole == EmployerSubRole.Employer ? "employers" : "recruiters"));
            }

            return;
        }
示例#7
0
 private IEnumerable <Employer> CreateEmployers(int start, int count, EmployerSubRole subRole)
 {
     return(CreateEmployers(start, count, subRole, null, null));
 }
示例#8
0
        private IList <Employer> CreateEmployers(DateTime lastLoggedIn, bool enabled, EmployerSubRole subRole, int start, int count)
        {
            IList <Employer> employers = new List <Employer>();

            for (int index = start; index < start + count; index++)
            {
                Employer employer = _employerAccountsCommand.CreateTestEmployer(string.Format(EmployerUserIdFormat, index), _organisationsCommand.CreateTestOrganisation(0));
                employer.FirstName   = string.Format(EmployerFirstNameFormat, index);
                employer.LastName    = EmployerLastName;
                employer.CreatedTime = lastLoggedIn;
                employer.SubRole     = subRole;
                employer.IsEnabled   = enabled;
                _employerAccountsCommand.UpdateEmployer(employer);

                _userSessionsRepository.CreateUserLogin(new UserLogin {
                    Id = Guid.NewGuid(), UserId = employer.Id, Time = lastLoggedIn, AuthenticationStatus = AuthenticationStatus.Authenticated
                });
                employers.Add(employer);
            }

            return(employers);
        }
示例#9
0
        private static Employer CreateTestEmployer(this IEmployerAccountsCommand employersCommand, string loginId, string firstName, string lastName, string emailAddress, EmployerSubRole subRole, IOrganisation organisation)
        {
            var employer = new Employer
            {
                EmailAddress = new EmailAddress {
                    Address = emailAddress
                },
                IsActivated = true,
                IsEnabled   = true,
                PhoneNumber = new PhoneNumber {
                    Number = DefaultPhoneNumber, Type = PhoneNumberType.Mobile
                },
                FirstName    = firstName,
                LastName     = lastName,
                Organisation = organisation,
                SubRole      = subRole,
            };

            employersCommand.CreateTestEmployer(employer, loginId);
            return(employer);
        }
示例#10
0
 private static Employer CreateTestEmployer(this IEmployerAccountsCommand employersCommand, string loginId, string firstName, string lastName, EmployerSubRole subRole, IOrganisation organisation)
 {
     return(CreateTestEmployer(
                employersCommand,
                loginId,
                firstName,
                lastName,
                string.Format(EmailAddressFormat, loginId),
                subRole,
                organisation));
 }