private static VariantConstraints ParseConstraints(string variant) { var variantParts = variant.Split(new[] { AndOperator }, StringSplitOptions.RemoveEmptyEntries); var variantConstraints = new VariantConstraints(); foreach (var variantPart in variantParts) { var variantKeyAndValue = variantPart.Split(new[] { VariantSeparator }, StringSplitOptions.RemoveEmptyEntries); var variantPair = new VariantConstraint(variantKeyAndValue[0], variantKeyAndValue[1]); variantConstraints.AddVariant(variantPair); } return(variantConstraints); }
private IEnumerable <VariantConstraints> GetVariantConstraints() { var constraintsList = new List <VariantConstraints>(); var variantConstraintsPowerSet = GetPowerSet(_variants.ToList()); foreach (var variantConstraints in variantConstraintsPowerSet) { var constraints = new VariantConstraints(); foreach (var variantConstraint in variantConstraints) { constraints.AddVariant(variantConstraint); } constraintsList.Add(constraints); } return(constraintsList); }