Example #1
0
        public IPluginOptionViewModel Construct(IOption option)
        {
            if (option is IListOption)
            {
                var optionType = option.GetType().FindBaseType(typeof(ListOption <>));
                if (optionType != null)
                {
                    var tValue  = optionType.GetGenericArguments().First();
                    var generic = _constructListOptionMethodInfo.MakeGenericMethod(tValue);

                    var opt = generic.Invoke(this, new object?[] { option });
                    if (opt != null)
                    {
                        return((IPluginOptionViewModel)opt);
                    }
                }
            }

            return(option switch
            {
                BooleanOption bOption => new PluginBooleanOptionViewModel(bOption, _localizationProvider),
                NumberOption nOption => new PluginNumberOptionViewModel(nOption, _localizationProvider),
                TextOption tOption => new PluginTextOptionViewModel(tOption, _localizationProvider),
                CommandOption cOption => new PluginCommandOptionViewModel(cOption, _localizationProvider),
                EncryptedTextOption eOption => new PluginEncryptedTextOptionViewModel(eOption, _localizationProvider),
                StringCollectionOption sOption => new PluginStringCollectionOptionViewModel(sOption, _localizationProvider),
                DisplayOption dOption => new PluginDisplayOptionViewModel(dOption, _localizationProvider),

                _ => ConstructDisplayOption(option)
            });
        public void ConstructorShouldSetCorrectValue(string[] expected)
        {
            // Arrange
            var sut = new StringCollectionOption(expected, "name", "description");

            // Act
            var actual = sut.Value;

            // Assert
            Assert.Equal(expected, actual);
        }
 public PluginStringCollectionOptionViewModel(StringCollectionOption option, ILocalizationProvider localizationProvider)
     : base(option.NameTextId, option.Value)
 {
     _pluginOptionViewModelImplementation = new PluginOptionViewModelImplementation <List <string> >(option, localizationProvider, this);
 }