Beispiel #1
0
        private JobAdSearchExecution Search(JobAdSearch search, JobAdSearchAlert alert)
        {
            // Set the criteria recency to ensure only recently added jobs are included in the alert results.

            var criteria = search.Criteria.Clone();

            criteria.Recency = DateTime.Now - alert.LastRunTime;

            // Run the search as the owner.

            var member = new Member {
                Id = search.OwnerId
            };

            // Search.

            var execution = new JobAdSearchExecution
            {
                SearcherId = search.OwnerId,
                Criteria   = search.Criteria,
                Context    = "Alert",
                Results    = _executeJobAdSearchCommand.Search(member, criteria, new Range(0, MaximumResults)).Results,
            };

            // Update the last run time for next time.

            _jobAdSearchAlertsCommand.UpdateLastRunTime(search.Id, DateTime.Now);
            return(execution);
        }
Beispiel #2
0
 public static SavedJobSearchAlertEntity Map(this JobAdSearchAlert alert)
 {
     return(new SavedJobSearchAlertEntity
     {
         id = alert.Id,
         lastRunTime = alert.LastRunTime,
     });
 }
        private void CreateJobAdSearchAlert(Guid searchId, DateTime lastRunTime)
        {
            var alert = new JobAdSearchAlert {
                JobAdSearchId = searchId
            };

            alert.Prepare();
            alert.Validate();
            _repository.CreateJobAdSearchAlert(alert);

            // Set the last run time.

            _repository.UpdateJobAdSearchLastRunTime(searchId, lastRunTime);
        }
Beispiel #4
0
        void ISearchAlertsRepository.CreateJobAdSearchAlert(JobAdSearchAlert alert)
        {
            using (var dc = CreateContext())
            {
                dc.SavedJobSearchAlertEntities.InsertOnSubmit(alert.Map());

                // Need to update the corresponding search entity.

                var entity = GetSavedJobSearchEntity(dc, alert.JobAdSearchId);
                entity.alertId = alert.Id;

                dc.SubmitChanges();
            }
        }