Beispiel #1
0
        public static TCriteria MapTo <TCriteriaSetEntity, TCriteriaEntity, TCriteria>(this TCriteriaSetEntity entity, string type, ICriteriaPersister criteriaPersister, bool persistantIsString)
            where TCriteriaSetEntity : ICriteriaSetEntity <TCriteriaEntity>
            where TCriteriaEntity : class, ICriteriaEntity
            where TCriteria : Criteria
        {
            // Create first.

            var criteria = criteriaPersister.CreateCriteria <TCriteria>(type);

            criteria.Id = entity.id;

            criteriaPersister.OnLoading(criteria);

            foreach (var criteriaEntity in entity.Entities)
            {
                try
                {
                    criteria.SetPersistantItem(criteriaEntity.name, criteriaEntity.value, persistantIsString);
                }
                catch (Exception ex)
                {
                    throw new ApplicationException("Could not set the criteria item with name '" + criteriaEntity.name + "'.", ex);
                }
            }

            criteriaPersister.OnLoaded(criteria);

            return(criteria);
        }
 void ICriteriaPersister.OnLoading(Criteria criteria)
 {
     if (criteria is EmployerSearchCriteria)
     {
         _employerPersister.OnLoading(criteria);
     }
     else if (criteria is MemberSearchCriteria)
     {
         _memberPersister.OnLoading(criteria);
     }
 }