Beispiel #1
0
        public static SavedJobSearchEntity Map(this JobAdSearch search, ICriteriaPersister criteriaPersister)
        {
            var entity = new SavedJobSearchEntity {
                id = search.Id
            };

            search.MapTo(entity, criteriaPersister);
            return(entity);
        }
Beispiel #2
0
        private static void DeleteCriteria(JobAdsDataContext dc, SavedJobSearchEntity entity)
        {
            if (entity.JobSearchCriteriaSetEntity != null)
            {
                // Need to check that there are no other searches or executions that are using this criteria.

                if (!IsCriteriaOwnedByOtherSearch(dc, entity.JobSearchCriteriaSetEntity.id, entity.id) && !IsCriteriaOwnedByExecution(dc, entity.JobSearchCriteriaSetEntity.id))
                {
                    dc.JobSearchCriteriaEntities.DeleteAllOnSubmit(entity.JobSearchCriteriaSetEntity.JobSearchCriteriaEntities);
                    dc.JobSearchCriteriaSetEntities.DeleteOnSubmit(entity.JobSearchCriteriaSetEntity);
                }
            }
        }
Beispiel #3
0
        public static JobAdSearch Map(this SavedJobSearchEntity search, ICriteriaPersister criteriaPersister)
        {
            // At one stage if no name was supplied then a HTML snippet was generated based off the criteria and
            // stored in the "displayText" field.  Not ideal.  The generated HTML snippet is now generated
            // as needed in the UI.
            // Validate what is stored in the database as it comes out, and if it doesn't conform to what is currently valid
            // for a name then assume it is one of these snippets and simply don't return it.

            var validator = (IValidator) new RegexValidator(RegularExpressions.CompleteJobAdSearchName, Constants.JobAdSearchNameMinLength, Constants.JobAdSearchNameMaxLength);
            var name      = validator.IsValid(search.displayText) ? search.displayText : null;

            return(new JobAdSearch
            {
                Id = search.id,
                OwnerId = search.ownerId,
                Name = name,
                Criteria = search.JobSearchCriteriaSetEntity.MapTo <JobSearchCriteriaSetEntity, JobSearchCriteriaEntity, JobAdSearchCriteria>(criteriaPersister, true)
            });
        }
Beispiel #4
0
        private static Guid CreateSavedJobAdSearch(string type, ICollection <KeyValuePair <string, string> > criteria)
        {
            var id = Guid.NewGuid();

            using (var dc = new JobAdsDataContext(CreateDbConnectionFactory(false).CreateConnection()))
            {
                var entity = new SavedJobSearchEntity
                {
                    id          = id,
                    displayText = string.Empty,
                    JobSearchCriteriaSetEntity = new JobSearchCriteriaSetEntity
                    {
                        id   = Guid.NewGuid(),
                        type = type,
                        JobSearchCriteriaEntities = CreateJobSearchCriteria(criteria),
                    },
                };

                dc.SavedJobSearchEntities.InsertOnSubmit(entity);
                dc.SubmitChanges();
            }

            return(id);
        }
Beispiel #5
0
 public static void MapTo(this JobAdSearch search, SavedJobSearchEntity entity, ICriteriaPersister criteriaPersister)
 {
     entity.ownerId     = search.OwnerId;
     entity.displayText = search.Name;
     entity.JobSearchCriteriaSetEntity = search.Criteria.MapTo <JobSearchCriteriaSetEntity, JobSearchCriteriaEntity, JobAdSearchCriteria>(criteriaPersister, true);
 }