/// <summary> /// Remove a Criterion from this quest /// </summary> /// <param name="Criterion">Criterion which should be removed</param> public void RemoveCriterion(BaseCriterion Criterion) { if (Criteria.Contains(Criterion)) { Criteria.Remove(Criterion); } }
/// <summary> /// Add a criterion to this quest /// </summary> /// <param name="Criterion">Criterion which should be added</param> public void AddCriterion(BaseCriterion Criterion) { foreach (BaseCriterion bc in Criteria) { if (bc.Name == Criterion.Name) { throw new Exception("Duplicate Criterion! Name <" + Criterion.Name + "> already used!"); } } Criterion.ParentQuest = this; Criteria.Add(Criterion); }
public static BaseCriterion Or(this BaseCriterion baseCriterion, BaseCriterion criterion) { if (baseCriterion == null) { return criterion; } var criteriaGroup = baseCriterion as CriteriaGroup; if (criteriaGroup == null) { return new CriteriaGroup(new[] { baseCriterion, criterion }.ToList(), new List<CompoundFilterType> { CompoundFilterType.Or }); } criteriaGroup.Criteria.Add(criterion); criteriaGroup.CompoundFilterTypes.Add(CompoundFilterType.Or); return criteriaGroup; }
public static BaseCriterion Or(this BaseCriterion baseCriterion, BaseCriterion criterion) { if (baseCriterion == null) { return(criterion); } var criteriaGroup = baseCriterion as CriteriaGroup; if (criteriaGroup == null) { return(new CriteriaGroup(new[] { baseCriterion, criterion }.ToList(), new List <CompoundFilterType> { CompoundFilterType.Or })); } criteriaGroup.Criteria.Add(criterion); criteriaGroup.CompoundFilterTypes.Add(CompoundFilterType.Or); return(criteriaGroup); }
public static SimpleFilterBuilder <TFilterable> Where <TFilterable>(this FilterBuilder <TFilterable> filterBuilderBase, BaseCriterion filterCriterion) where TFilterable : class, IFilterable { if (filterBuilderBase == null) { throw new ArgumentNullException(nameof(filterBuilderBase)); } if (filterBuilderBase.FilterCriteria.Criteria.Any()) { filterBuilderBase.FilterCriteria.Criteria.Add(new CriteriaGroup(filterCriterion)); } else { filterBuilderBase.FilterCriteria = new CriteriaGroup(filterCriterion); } return(new SimpleFilterBuilder <TFilterable>(filterBuilderBase)); }
public static CompoundFilterBuilder <TFilterable> And <TFilterable>(this SimpleFilterBuilder <TFilterable> simpleFilterBuilder, BaseCriterion filterCriterion) where TFilterable : class, IFilterable { var compoundFilterBuilder = new CompoundFilterBuilder <TFilterable>(simpleFilterBuilder); compoundFilterBuilder.FilterCriteria.Criteria.Add(new CriteriaGroup(filterCriterion)); compoundFilterBuilder.FilterCriteria.CompoundFilterTypes.Add(CompoundFilterType.And); return(compoundFilterBuilder); }
internal static Filter <TFilterable> BuildWhere <TFilterable>(this Filter <TFilterable> filter, BaseCriterion baseCriterion) where TFilterable : class, IFilterable { var criteriaGroup = baseCriterion as CriteriaGroup; if (criteriaGroup != null) { filter.BuildWhere(criteriaGroup); } else { var whereClause = baseCriterion.CreateWhere(filter.DbObjectMapper.ObjectPropertyColumnNameMapper, filter.Parameters.Count); if (!string.IsNullOrWhiteSpace(whereClause)) { var @params = baseCriterion.CreateParameters(filter.Parameters.Count); filter.SqlQueryStringBuilder.SafeSqlAppend(whereClause); filter.Parameters.AddRange(@params); } } return(filter); }