Example #1
0
        private static ParameterValues CreateParameterValues(PluginContract.Control control, Dictionary <string, string> configParameters)
        {
            var parameterValues = new ParameterValues();

            foreach (var configParameter in configParameters)
            {
                var controlConfigParameter = control.ConfigParameters.FirstOrDefault(x => x.SymbolicName.Equals(configParameter.Key, StringComparison.OrdinalIgnoreCase)) ?? control.View.ConfigParameters.FirstOrDefault(x => x.SymbolicName.Equals(configParameter.Key, StringComparison.OrdinalIgnoreCase)) ?? control.View.PluginParameters.FirstOrDefault(x => x.SymbolicName.Equals(configParameter.Key, StringComparison.OrdinalIgnoreCase));
                switch (controlConfigParameter)
                {
                case IntConfigParameter icp:
                    parameterValues.Add(new IntParameterValue(icp, int.Parse(configParameter.Value)));
                    break;

                case StringConfigParameter scp:
                    parameterValues.Add(new StringParameterValue(scp, configParameter.Value));
                    break;

                case BoolConfigParameter bcp:
                    parameterValues.Add(new BoolParameterValue(bcp, configParameter.Value != null ? bool.Parse(configParameter.Value) : bcp.DefaultValue));
                    break;

                default:
                    throw new NotImplementedException($"{controlConfigParameter.GetType().Name} is not yet implemented!");
                }
            }

            foreach (var pluginParameter in control.View.PluginParameters)
            {
                switch (pluginParameter)
                {
                case IntConfigParameter icp:
                    parameterValues.Add(new IntParameterValue(icp, icp.DefaultValue));
                    break;

                case StringConfigParameter scp:
                    parameterValues.Add(new StringParameterValue(scp, scp.DefaultValue));
                    break;

                case BoolConfigParameter bcp:
                    parameterValues.Add(new BoolParameterValue(bcp, bcp.DefaultValue));
                    break;

                default:
                    throw new NotImplementedException($"{pluginParameter.GetType().Name} is not yet implemented!");
                }
            }

            return(parameterValues);
        }
Example #2
0
 public void Subscribe(int panelId, PluginContract.Control control, ParameterValues parameterValues)
 {
     control.Subscribe(parameterValues, panelId, OnControlChanged);
 }
Example #3
0
 private static MakroBoard.ApiModels.Control ToApiControl(PluginContract.Control control)
 {
     return(new ApiModels.Control(control.SymbolicName, ToApiView(control.View), ToApiConfigParameters(control.ConfigParameters), control is PluginContract.ListControl listControl ? listControl.SubControls.Select(ToApiControl) : null));
 }