public override ParameterBuilder Restore(ParameterBuilderDTO dto) { var sb = dto as LikeBuilderDTO; if (sb == null) return base.Restore(dto); // ensure we can restore the MatchMode from the name of the static fields on MatchMode var modes = typeof(MatchMode).GetFields(BindingFlags.Public | BindingFlags.Static); var validNames = new StringBuilder(); FieldInfo mode = null; foreach (var f in modes) { validNames.AppendFormat("{0}, ", f.Name); if (mode == null && f.FieldType == typeof(MatchMode) && f.Name.Equals(sb.Mode)) mode = f; } if (mode == null) { throw new ArgumentException(String.Format("MatchMode {0} does not match an internal static field of the same name. Valid values are {1}.", sb.Mode, validNames.Remove(validNames.Length - 2, 2))); } return new LikeBuilder() { Label = sb.Label, Mode = (MatchMode)mode.GetValue(null) }; }
public override ParameterBuilder Restore(ParameterBuilderDTO dto) { var sb = dto as JunctionBuilderDTO; if (sb == null) return base.Restore(dto); return new JunctionBuilder("Conjunction".Equals(sb.Type) ? JunctionType.Conjunction : JunctionType.Disjunction) { Label = sb.Label, Other = base.Chain.Restore(sb.Other) }; }
public override ParameterBuilder Restore(ParameterBuilderDTO dto) { var sb = dto as NotBuilderDTO; if (sb == null) return base.Restore(dto); return new NotBuilder() { Label = sb.Label, Other = Chain.Restore(sb.Other) }; }
public override ParameterBuilder Restore(ParameterBuilderDTO dto) { var sb = dto as SimpleBuilderDTO; if (sb == null) return base.Restore(dto); return new SimpleBuilder() { Label = sb.Label, Operator = sb.Operator }; }
public override ParameterBuilder Restore(ParameterBuilderDTO dto) { var sb = dto as BooleanBuilderDTO; if (sb == null) return base.Restore(dto); return new BooleanBuilder() { Label = sb.Label, Value = sb.Value }; }
public override ParameterBuilder Restore(ParameterBuilderDTO dto) { return Source; }