protected override ISetting MergeSettings(ISetting left, ISetting right) { SettingMultiEnumValue leftValue = new SettingMultiEnumValue(left.RawValue); SettingMultiEnumValue rightValue = new SettingMultiEnumValue(right.RawValue); RawValue = (leftValue + rightValue).ToString(); return(this); }
public override void Parse <TValue>(TValue value) { string[] baseValue = value as string[]; if (baseValue == null) { throw new ArgumentException($"value must be '{typeof( string[] ).FullName}'"); } SettingMultiEnumValue enumValue = new SettingMultiEnumValue(baseValue); RawValue = enumValue.Value; }
public override bool IsValid(string minValue, string maxValue, bool isRequired) { if (isRequired && String.IsNullOrEmpty(RawValue)) { return(false); } SettingMultiEnumValue value = new SettingMultiEnumValue(RawValue); SettingMultiEnumValue extractedMinValue = new SettingMultiEnumValue(minValue); SettingMultiEnumValue extractedMaxValue = new SettingMultiEnumValue(maxValue); // Текущее значение перечислимого типа должно быть надмножеством minValue и подмножеством maxValue return(extractedMinValue.IsSubsetOf(value) && value.IsSubsetOf(extractedMaxValue)); }