예제 #1
0
 //By Johann
 /// <summary>
 /// Constructs a RateViewModel with the Data loaded
 /// </summary>
 /// <param name="topic"></param>
 /// <param name="user"></param>
 public RateViewModel(Topic topic, User user)
 {
     this.user  = user;
     this.topic = topic;
     CheckRated();
     Criteria.AddRange(Criterion.GetCriteriaByTopic(topic, user));
 }
        public override void Clean()
        {
            if (Criteria == null)
            {
                return;
            }

            for (var i = Criteria.Count - 1; i >= 0; i--)
            {
                var op  = Criteria[i];
                var sog = op as SearchOperationGroup;

                if (sog != null && (sog.Criteria == null || sog.Criteria.Count == 0)) // its useless
                {
                    Criteria.RemoveAt(i);
                    continue;
                }
                op.Parent = this;
                op.Clean();
            }

            if (Criteria.Count == 1 && Criteria[0] is SearchOperationGroup) // just collapse the group
            {
                var sog = (SearchOperationGroup)Criteria[0];
                GroupType = sog.GroupType;
                Criteria.Remove(sog);
                Criteria.AddRange(sog.Criteria); // add the criteria to this group
            }
        }
예제 #3
0
 IDatabaseQuery <TEntity> IDatabaseQuery <TEntity> .Where(Expression <Func <TEntity, bool> > criteria)
 {
     if (criteria == null)
     {
         return(this);
     }
     Criteria.AddRange(new CriteriaExtractor <TEntity>(criteria, throwOnNonConversion: true).Extract());
     return(this);
 }
 IDatabaseQuery <TEntity> IDatabaseQuery <TEntity> .Where(Expression <Func <TEntity, bool> > criteria)
 {
     if (criteria == null)
     {
         return(this);
     }
     Criteria.AddRange(CriteriaExtractor <TEntity> .Parse(criteria));
     return(this);
 }
예제 #5
0
 public void Flatten()
 {
     if (Children.Count == 1 && Children[0].Connective == Connective)
     {
         var child = Children[0];
         Criteria.AddRange(child.Criteria);
         Children.Clear();
         Children.AddRange(child.Children);
     }
 }
예제 #6
0
 public QueryDTO(string name, params FilterConditionDTO[] conditions) : this()
 {
     Name = name;
     Criteria.AddRange(conditions);
 }
예제 #7
0
 public QueryDTO(string name, IEnumerable <FilterConditionDTO> conditions) : this()
 {
     Name = name;
     Criteria.AddRange(conditions);
 }
예제 #8
0
 IDatabaseQuery IDatabaseQuery.Where(params ICriterion[] criteria)
 {
     Criteria.AddRange(criteria);
     return(this);
 }
예제 #9
0
 protected void AddCriteria(params Expression <Func <T, bool> >[] criteriaExpressions)
 {
     Criteria.AddRange(criteriaExpressions);
 }
 public new DatabaseQuery <TEntity> Where(params ICriterion[] criteria)
 {
     Criteria.AddRange(criteria);
     return(this);
 }
예제 #11
0
            /*public void LoadCriteria(Preset preset)
             * {
             *  LoadCriteria(preset.Criteria);
             * }*/

            public void LoadCriteria(IEnumerable <Criteria> criteria)
            {
                Criteria.Clear();
                Criteria.AddRange(criteria);
            }