OptionValueConverter<T>
using AngleSharp.Parser.Css;
using System;
using System.Collections.Generic;
using System.Linq;
namespace AngleSharp.Css.ValueConverters
{
internal sealed class OptionValueConverter<T> : IValueConverter<T>, IValueConverter
{
private readonly IValueConverter<T> _converter;
private readonly T _defaultValue;
public OptionValueConverter(IValueConverter<T> converter, T defaultValue)
{
_converter = converter;
_defaultValue = defaultValue;
}
public bool TryConvert(IEnumerable<CssToken> value, Action<T> setResult)
{
if (!Enumerable.Any<CssToken>(value)) {
setResult(_defaultValue);
return true;
}
return _converter.TryConvert(value, setResult);
}
public bool Validate(IEnumerable<CssToken> value)
{
if (Enumerable.Any<CssToken>(value))
return _converter.Validate(value);
return true;
}
}
}