public override async Task OnSettingsCreating(PluginSettingBuilder settingBuilder)
        {
            var annouceoptionssetting = new PluginSetting
            {
                Name = "Announce options",
                Value = "Level",
                ValueType = DataType.LIST,
                Description = "Select the values you would like announced."
            };
            annouceoptionssetting.Options.Add(new PluginSettingOption { Name = "Switch Level" });
            annouceoptionssetting.Options.Add(new PluginSettingOption { Name = "Dimmer Level" });
            annouceoptionssetting.Options.Add(new PluginSettingOption { Name = "Thermostat Operating State and Temp" });
            annouceoptionssetting.Options.Add(new PluginSettingOption { Name = "All of the above" });
            annouceoptionssetting.Options.Add(new PluginSettingOption { Name = "Custom" });

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(annouceoptionssetting, o => o.AnnounceOptionSetting);

            var customsetting = new PluginSetting
           {
               Name = "Announce on custom values",
               Value = "dimmer:Basic, thermostat:Temperature, switch:Basic, thermostat:Operating State",
               ValueType = DataType.STRING,
               Description = "Include all values you would like announced. (DEVICE_TYPE_NAME:VALUE_LABEL_NAME) Comma Separated."
           };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(customsetting, o => o.CustomAnnounceSetting);
        }
        public async Task RegisterPluginSettingOptionAddedTest()
        {
            //Arrange
            var dbConnection = new UnitTestDbConnection();

            Database.SetInitializer(new CreateFreshDbInitializer());
            var pluginBuilder = new PluginSettingBuilder(dbConnection, CancellationToken.None);
            var dbPlugin      = UnitTesting.CreateFakePlugin();

            var pluginSetting = new PluginSetting
            {
                Name             = "Plugin Setting 1",
                ValueType        = DataType.STRING,
                Value            = "Hello World",
                UniqueIdentifier = "PropertyTest"
            };

            dbPlugin.Settings.Add(pluginSetting);
            var option1 = new PluginSettingOption
            {
                Name = "Option 1",
            };
            var option2 = new PluginSettingOption
            {
                Name = "Option 2",
            };

            pluginSetting.Options.Add(option1);


            using (var context = new ZvsContext(dbConnection))
            {
                context.Plugins.Add(dbPlugin);
                await context.SaveChangesAsync();
            }
            var plugin = new StubUnitTestPlugin
            {
                PluginGuidGet = () => dbPlugin.PluginGuid
            };

            pluginSetting.Options.Add(option2);

            //act
            var result = await pluginBuilder.Plugin(plugin).RegisterPluginSettingAsync(pluginSetting, o => o.PropertyTest);

            PluginSetting a;

            using (var context = new ZvsContext(dbConnection))
            {
                a = await context.PluginSettings
                    .Include(o => o.Options)
                    .FirstOrDefaultAsync(o => o.Id == pluginSetting.Id);
            }

            //assert
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsTrue(a.Options.Count == 2, "Expected 2 plugin setting options");
            Assert.IsTrue(a.Options[1].Name == option2.Name, "Plugin option name mismatch");
        }
        public void ConstructorTest()
        {
            //arrange 
            //act
            var result = new PluginSettingBuilder(new UnitTestDbConnection(), CancellationToken.None);

            //assert 
            Assert.IsNotNull(result);
        }
        public void ConstructorTest()
        {
            //arrange
            //act
            var result = new PluginSettingBuilder(new UnitTestDbConnection(), CancellationToken.None);

            //assert
            Assert.IsNotNull(result);
        }
Esempio n. 5
0
        public override async Task OnSettingsCreating(PluginSettingBuilder settingBuilder)
        {
            var portSetting = new PluginSetting
            {
                Name        = "Port",
                Value       = (1337).ToString(),
                ValueType   = DataType.INTEGER,
                Description = "LightSwitch will listen for connections on this port."
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(portSetting, o => o.PortSetting);

            var maxConnSetting = new PluginSetting
            {
                Name        = "Max Conn.",
                Value       = (200).ToString(),
                ValueType   = DataType.INTEGER,
                Description = "The maximum number of connections allowed."
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(maxConnSetting, o => o.MaxConnectionsSettings);

            var verboseSettings = new PluginSetting
            {
                Name        = "Verbose Logging",
                Value       = false.ToString(),
                ValueType   = DataType.BOOL,
                Description = "(Writes all server client communication to the log for debugging.)"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(verboseSettings, o => o.VerboseSetting);

            var passwordSetting = new PluginSetting
            {
                Name        = "Password",
                Value       = "ChaNgeMe444",
                ValueType   = DataType.STRING,
                Description = "The password clients must use to connect to the LightSwitch server. "
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(passwordSetting, o => o.PasswordSetting);

            var sortSetting = new PluginSetting
            {
                Name        = "Sort Device List",
                Value       = true.ToString(),
                ValueType   = DataType.BOOL,
                Description = "(Alphabetically sorts the device list.)"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(sortSetting, o => o.SortListSetting);

            var bonjourSetting = new PluginSetting
            {
                Name        = "Publish ZeroConf/Bonjour",
                Value       = false.ToString(),
                ValueType   = DataType.BOOL,
                Description = "Zero configuration networking allows clients on your network to detect and connect to your LightSwitch server automatically."
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(bonjourSetting, o => o.UseBonjourSetting);
        }
        public async Task RegisterPluginSettingOnNonPropertyPluginTest()
        {
            //Arrange 
            Database.SetInitializer(new CreateFreshDbInitializer());
            var pluginBuilder = new PluginSettingBuilder(new UnitTestDbConnection(), CancellationToken.None);
            var plugin = new StubUnitTestPlugin();

            //act
            await pluginBuilder.Plugin(plugin).RegisterPluginSettingAsync(new PluginSetting(), o => o.FieldTest);

            //assert - throws
        }
        public async Task RegisterPluginSettingOnNonPropertyPluginTest()
        {
            //Arrange
            Database.SetInitializer(new CreateFreshDbInitializer());
            var pluginBuilder = new PluginSettingBuilder(new UnitTestDbConnection(), CancellationToken.None);
            var plugin        = new StubUnitTestPlugin();

            //act
            await pluginBuilder.Plugin(plugin).RegisterPluginSettingAsync(new PluginSetting(), o => o.FieldTest);

            //assert - throws
        }
Esempio n. 8
0
        public async Task Initialize(IFeedback<LogEntry> log, IEntityContextConnection entityContextConnection,IAdapterManager adapterManager)
        {
            EntityContextConnection = entityContextConnection;
            Log = log;
            AdapterManager = adapterManager;

            var sb = new PluginSettingBuilder(entityContextConnection, CancellationToken);
            await OnSettingsCreating(sb);

            var ssb = new SceneSettingBuilder(EntityContextConnection);
            await OnSceneSettingsCreating(ssb);

            var dsb = new DeviceSettingBuilder(EntityContextConnection);
            await OnDeviceSettingsCreating(dsb);
        }
        public async Task RegisterPluginSettingNullPluginTest()
        {
            //Arrange 
            var dbConnection = new UnitTestDbConnection();
            Database.SetInitializer(new CreateFreshDbInitializer());
            var pluginBuilder = new PluginSettingBuilder( dbConnection, CancellationToken.None);
            var plugin = new StubUnitTestPlugin();

            //act
            var result = await pluginBuilder.Plugin(plugin).RegisterPluginSettingAsync(new PluginSetting(), o => o.PropertyTest);

            //assert 
            Console.WriteLine(result.Message);
            Assert.IsTrue(result.HasError);
        }
        public async Task RegisterPluginSettingValueDonestTriggerChangedTest()
        {
            //Arrange
            var dbConnection = new UnitTestDbConnection();

            Database.SetInitializer(new CreateFreshDbInitializer());
            var pluginBuilder = new PluginSettingBuilder(dbConnection, CancellationToken.None);
            var dbPlugin      = UnitTesting.CreateFakePlugin();

            var pluginSetting = new PluginSetting
            {
                Name             = "Plugin Setting 1",
                ValueType        = DataType.STRING,
                Value            = "Hello World",
                UniqueIdentifier = "PropertyTest"
            };

            dbPlugin.Settings.Add(pluginSetting);
            using (var context = new ZvsContext(dbConnection))
            {
                context.Plugins.Add(dbPlugin);
                await context.SaveChangesAsync();
            }
            var plugin = new StubUnitTestPlugin
            {
                PluginGuidGet = () => dbPlugin.PluginGuid
            };

            pluginSetting.Value = "New value!";

            //act
            var result = await pluginBuilder.Plugin(plugin).RegisterPluginSettingAsync(pluginSetting, o => o.PropertyTest);

            Plugin a;

            using (var context = new ZvsContext(dbConnection))
            {
                a = await context.Plugins
                    .Include(o => o.Settings)
                    .FirstOrDefaultAsync(o => o.PluginGuid == dbPlugin.PluginGuid);
            }

            //assert
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsTrue(a.Settings.Count == 1, "Expected 1 plugin setting");
            Assert.IsTrue(a.Settings[0].Value == "Hello World", "Plugin value changed when it shouldn't!");
        }
        public async Task RegisterPluginSettingNullPluginTest()
        {
            //Arrange
            var dbConnection = new UnitTestDbConnection();

            Database.SetInitializer(new CreateFreshDbInitializer());
            var pluginBuilder = new PluginSettingBuilder(dbConnection, CancellationToken.None);
            var plugin        = new StubUnitTestPlugin();

            //act
            var result = await pluginBuilder.Plugin(plugin).RegisterPluginSettingAsync(new PluginSetting(), o => o.PropertyTest);

            //assert
            Console.WriteLine(result.Message);
            Assert.IsTrue(result.HasError);
        }
Esempio n. 12
0
        public override async Task OnSettingsCreating(PluginSettingBuilder settingBuilder)
        {
            var latSetting = new PluginSetting
            {
                UniqueIdentifier = "LAT",
                Name             = "Latitude",
                Value            = "37.6772222222222",
                ValueType        = DataType.DECIMAL,
                Description      = "Your Latitude in Decimal Notation. ex. 37.6772222222222"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(latSetting, o => o.LatitudeSetting);

            var longSetting = new PluginSetting
            {
                UniqueIdentifier = "LOG",
                Name             = "Longitude",
                Value            = "-113.061666666667",
                ValueType        = DataType.DECIMAL,
                Description      = "Your Longitude in Decimal Notation. ex. -113.061666666667"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(longSetting, o => o.LongitudeSetting);

            var delaySunriseSetting = new PluginSetting
            {
                UniqueIdentifier = "DELAY_SUNRISE",
                Name             = "Minutes to delay sunrise",
                Value            = "0",
                ValueType        = DataType.DECIMAL,
                Description      = "The minutes to delay sunrise as a positive or negative number"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(delaySunriseSetting, o => o.SunriseDelaySetting);

            var delaySunsetSetting = new PluginSetting
            {
                UniqueIdentifier = "DELAY_SUNSET",
                Name             = "Minutes to delay sunset",
                Value            = "0",
                ValueType        = DataType.DECIMAL,
                Description      = "The minutes to delay sunset as a positive or negative number"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(delaySunsetSetting, o => o.SunsetDelaySetting);
        }
Esempio n. 13
0
        public override async Task OnSettingsCreating(PluginSettingBuilder settingBuilder)
        {
            var portSetting = new PluginSetting
                {
                    Name = "HTTP Port",
                    Value = "80",
                    ValueType = DataType.INTEGER,
                    Description = "The port that HTTP will listen for commands on."
                };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(portSetting, o => o.PortSetting);

            var sslSetting = new PluginSetting
                {
                    Name = "HTTP Secure (SSL)",
                    Value = true.ToString(),
                    ValueType = DataType.BOOL,
                    Description = "If the HTTP Server will be over SSL."
                };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(sslSetting, o => o.UseSslSetting);

            var tokenSetting = new PluginSetting
               {
                   Name = "X-zvsTokens",
                   Value = "CC2D226814CBC713134BD9D09B892F10A9, A0689CEF6BA3AD5FAFE018F2D796FF",
                   ValueType = DataType.STRING,
                   Description = "A comma delimited list of X-zvsTokens.  A valid X-zvsToken must be sent in the header of each API command to authorize access."
               };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(tokenSetting, o => o.TokensSettings);

            var verboseSettings = new PluginSetting
                {
                    Name = "Verbose Logging",
                    Value = false.ToString(),
                    ValueType = DataType.BOOL,
                    Description = "(Writes all server client communication to the log for debugging.)"
                };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(verboseSettings, o => o.VerboseSetting);
        }
Esempio n. 14
0
        public override async Task OnSettingsCreating(PluginSettingBuilder settingBuilder)
        {
            var portSetting = new PluginSetting
            {
                Name        = "HTTP Port",
                Value       = "80",
                ValueType   = DataType.INTEGER,
                Description = "The port that HTTP will listen for commands on."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(portSetting, o => o.PortSetting);

            var sslSetting = new PluginSetting
            {
                Name        = "HTTP Secure (SSL)",
                Value       = true.ToString(),
                ValueType   = DataType.BOOL,
                Description = "If the HTTP Server will be over SSL."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(sslSetting, o => o.UseSslSetting);

            var tokenSetting = new PluginSetting
            {
                Name        = "X-zvsTokens",
                Value       = "CC2D226814CBC713134BD9D09B892F10A9, A0689CEF6BA3AD5FAFE018F2D796FF",
                ValueType   = DataType.STRING,
                Description = "A comma delimited list of X-zvsTokens.  A valid X-zvsToken must be sent in the header of each API command to authorize access."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(tokenSetting, o => o.TokensSettings);

            var verboseSettings = new PluginSetting
            {
                Name        = "Verbose Logging",
                Value       = false.ToString(),
                ValueType   = DataType.BOOL,
                Description = "(Writes all server client communication to the log for debugging.)"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(verboseSettings, o => o.VerboseSetting);
        }
        public async Task RegisterPluginSettingPluginTest()
        {
            //Arrange 
            var dbConnection = new UnitTestDbConnection();
            Database.SetInitializer(new CreateFreshDbInitializer());
            var pluginBuilder = new PluginSettingBuilder(dbConnection, CancellationToken.None);
            var dbPlugin = UnitTesting.CreateFakePlugin();
            using (var context = new ZvsContext(dbConnection))
            {
                context.Plugins.Add(dbPlugin);
                await context.SaveChangesAsync();
            }
            var plugin = new StubUnitTestPlugin
            {
                PluginGuidGet = () => dbPlugin.PluginGuid
            };

            var pluginSetting = new PluginSetting
            {
                Name = "Plugin Setting 1",
                ValueType = DataType.STRING,
                Value = "Hello World"
            };
               
            //act
            var result = await pluginBuilder.Plugin(plugin).RegisterPluginSettingAsync(pluginSetting, o => o.PropertyTest);

            Plugin a;
            using (var context = new ZvsContext(dbConnection))
            {
                a = await context.Plugins
                    .Include(o=> o.Settings)
                    .FirstOrDefaultAsync(o => o.PluginGuid == dbPlugin.PluginGuid);
            }

            //assert 
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsTrue(a.Settings.Count == 1, "Expected 1 plugin setting");
            Assert.IsTrue(a.Settings[0].Name == pluginSetting.Name, "Plugin setting name mismatch");
        }
Esempio n. 16
0
        public override async Task OnSettingsCreating(PluginSettingBuilder settingBuilder)
        {
            var annouceoptionssetting = new PluginSetting
            {
                Name        = "Announce options",
                Value       = "Level",
                ValueType   = DataType.LIST,
                Description = "Select the values you would like announced."
            };

            annouceoptionssetting.Options.Add(new PluginSettingOption {
                Name = "Switch Level"
            });
            annouceoptionssetting.Options.Add(new PluginSettingOption {
                Name = "Dimmer Level"
            });
            annouceoptionssetting.Options.Add(new PluginSettingOption {
                Name = "Thermostat Operating State and Temp"
            });
            annouceoptionssetting.Options.Add(new PluginSettingOption {
                Name = "All of the above"
            });
            annouceoptionssetting.Options.Add(new PluginSettingOption {
                Name = "Custom"
            });

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(annouceoptionssetting, o => o.AnnounceOptionSetting);

            var customsetting = new PluginSetting
            {
                Name        = "Announce on custom values",
                Value       = "dimmer:Basic, thermostat:Temperature, switch:Basic, thermostat:Operating State",
                ValueType   = DataType.STRING,
                Description = "Include all values you would like announced. (DEVICE_TYPE_NAME:VALUE_LABEL_NAME) Comma Separated."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(customsetting, o => o.CustomAnnounceSetting);
        }
Esempio n. 17
0
        public override async Task OnSettingsCreating(PluginSettingBuilder settingBuilder)
        {
            var apiKey = new PluginSetting
            {
                UniqueIdentifier = "APIWRITEKEY",
                Name             = "Write API Key",
                Value            = "",
                ValueType        = DataType.STRING,
                Description      = "Write API Key from your channel on https://thingspeak.com/"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(apiKey, o => o.ApiKey);

            var feild1 = new PluginSetting
            {
                UniqueIdentifier = "FIELD1",
                Name             = "Field1 Device",
                Value            = "",
                ValueType        = DataType.STRING,
                Description      = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild1, o => o.Field1);

            var feild2 = new PluginSetting
            {
                UniqueIdentifier = "FIELD2",
                Name             = "Field2 Device",
                Value            = "",
                ValueType        = DataType.STRING,
                Description      = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild2, o => o.Field2);

            var feild3 = new PluginSetting
            {
                UniqueIdentifier = "FIELD3",
                Name             = "Field3 Device",
                Value            = "",
                ValueType        = DataType.STRING,
                Description      = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild3, o => o.Field3);

            var feild4 = new PluginSetting
            {
                UniqueIdentifier = "FIELD4",
                Name             = "Field4 Device",
                Value            = "",
                ValueType        = DataType.STRING,
                Description      = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild4, o => o.Field4);

            var feild5 = new PluginSetting
            {
                UniqueIdentifier = "FIELD5",
                Name             = "Field5 Device",
                Value            = "",
                ValueType        = DataType.STRING,
                Description      = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild5, o => o.Field5);

            var feild6 = new PluginSetting
            {
                UniqueIdentifier = "FIELD6",
                Name             = "Field6 Device",
                Value            = "",
                ValueType        = DataType.STRING,
                Description      = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild6, o => o.Field6);

            var feild7 = new PluginSetting
            {
                UniqueIdentifier = "FIELD7",
                Name             = "Field7 Device",
                Value            = "",
                ValueType        = DataType.STRING,
                Description      = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild7, o => o.Field7);

            var feild8 = new PluginSetting
            {
                UniqueIdentifier = "FIELD8",
                Name             = "Field8 Device",
                Value            = "",
                ValueType        = DataType.STRING,
                Description      = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild8, o => o.Field8);
        }
        public override async Task OnSettingsCreating(PluginSettingBuilder settingBuilder)
        {
            var apiKey = new PluginSetting
            {
                UniqueIdentifier = "APIWRITEKEY",
                Name = "Write API Key",
                Value = "",
                ValueType = DataType.STRING,
                Description = "Write API Key from your channel on https://thingspeak.com/"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(apiKey, o => o.ApiKey);

            var feild1 = new PluginSetting
            {
                UniqueIdentifier = "FIELD1",
                Name = "Field1 Device",
                Value = "",
                ValueType = DataType.STRING,
                Description = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild1, o => o.Field1);

            var feild2 = new PluginSetting
            {
                UniqueIdentifier = "FIELD2",
                Name = "Field2 Device",
                Value = "",
                ValueType = DataType.STRING,
                Description = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild2, o => o.Field2);

            var feild3 = new PluginSetting
            {
                UniqueIdentifier = "FIELD3",
                Name = "Field3 Device",
                Value = "",
                ValueType = DataType.STRING,
                Description = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild3, o => o.Field3);

            var feild4 = new PluginSetting
            {
                UniqueIdentifier = "FIELD4",
                Name = "Field4 Device",
                Value = "",
                ValueType = DataType.STRING,
                Description = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild4, o => o.Field4);

            var feild5 = new PluginSetting
            {
                UniqueIdentifier = "FIELD5",
                Name = "Field5 Device",
                Value = "",
                ValueType = DataType.STRING,
                Description = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild5, o => o.Field5);

            var feild6 = new PluginSetting
            {
                UniqueIdentifier = "FIELD6",
                Name = "Field6 Device",
                Value = "",
                ValueType = DataType.STRING,
                Description = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild6, o => o.Field6);

            var feild7 = new PluginSetting
            {
                UniqueIdentifier = "FIELD7",
                Name = "Field7 Device",
                Value = "",
                ValueType = DataType.STRING,
                Description = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild7, o => o.Field7);

            var feild8 = new PluginSetting
            {
                UniqueIdentifier = "FIELD8",
                Name = "Field8 Device",
                Value = "",
                ValueType = DataType.STRING,
                Description = "The Value will be which zVirtual Device name you want mapped to ThingSpeak's field"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(feild8, o => o.Field8);
        }
Esempio n. 19
0
        public override async Task OnSettingsCreating(PluginSettingBuilder settingBuilder)
        {
            var annouceoptionssetting = new PluginSetting
            {
                Name        = "Host",
                Value       = "mqtt.myserver.com",
                ValueType   = DataType.STRING,
                Description = "Enter the Host name for the broker."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(annouceoptionssetting, o => o.HostSetting);


            var portSetting = new PluginSetting
            {
                Name        = "Port",
                Value       = "1883",
                ValueType   = DataType.INTEGER,
                Description = "Enter the port for the broker."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(portSetting, o => o.Port);


            var userNameSetting = new PluginSetting
            {
                Name        = "Username",
                Value       = "admin",
                ValueType   = DataType.STRING,
                Description = "Enter the username for the broker."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(userNameSetting, o => o.UserName);


            var passwordSetting = new PluginSetting
            {
                Name        = "Password",
                Value       = "brokerpassword",
                ValueType   = DataType.STRING,
                Description = "Enter the password for the broker."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(passwordSetting, o => o.Password);


            var topicSetting = new PluginSetting
            {
                Name        = "Topic",
                Value       = "zvirtual/{NodeNumber}/events",
                ValueType   = DataType.STRING,
                Description = "Enter the topic for changes to be published to, on the broker."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(topicSetting, o => o.TopicFormat);



            var floodTopicSetting = new PluginSetting
            {
                Name        = "Flood Topic",
                Value       = "zvirtual/events",
                ValueType   = DataType.STRING,
                Description = "Enter the topic name for all messages to get pushed to."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(floodTopicSetting, o => o.FloodTopic);


            var controlTopicSetting = new PluginSetting
            {
                Name        = "Device Control Topic",
                Value       = "zvirtual/control",
                ValueType   = DataType.STRING,
                Description = "Enter the control topic for all devices."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(controlTopicSetting, o => o.ControlTopicFormat);
        }
        public async Task RegisterPluginSettingValueDonestTriggerChangedTest()
        {
            //Arrange 
            var dbConnection = new StubIEntityContextConnection { NameOrConnectionStringGet = () => "asb-RegisterPluginSettingValueDonestTriggerChangedTest" };
            Database.SetInitializer(new CreateFreshDbInitializer());
            var pluginBuilder = new PluginSettingBuilder( dbConnection, CancellationToken.None);
            var dbPlugin = UnitTesting.CreateFakePlugin();

            var pluginSetting = new PluginSetting
            {
                Name = "Plugin Setting 1",
                ValueType = DataType.STRING,
                Value = "Hello World",
                UniqueIdentifier = "PropertyTest"
            };
            dbPlugin.Settings.Add(pluginSetting);
            using (var context = new ZvsContext(dbConnection))
            {
                context.Plugins.Add(dbPlugin);
                await context.SaveChangesAsync();
            }
            var plugin = new StubUnitTestPlugin
            {
                PluginGuidGet = () => dbPlugin.PluginGuid
            };

            pluginSetting.Value = "New value!";

            //act
            var result = await pluginBuilder.Plugin(plugin).RegisterPluginSettingAsync(pluginSetting, o => o.PropertyTest);

            Plugin a;
            using (var context = new ZvsContext(dbConnection))
            {
                a = await context.Plugins
                    .Include(o => o.Settings)
                    .FirstOrDefaultAsync(o => o.PluginGuid == dbPlugin.PluginGuid);
            }

            //assert 
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsTrue(a.Settings.Count == 1, "Expected 1 plugin setting");
            Assert.IsTrue(a.Settings[0].Value == "Hello World", "Plugin value changed when it shouldn't!");
        }
Esempio n. 21
0
 public virtual Task OnSettingsCreating(PluginSettingBuilder settingBuilder)
 {
     return Task.FromResult(0);
 }
        public async Task RegisterPluginSettingOptionRemovedTest()
        {
            //Arrange 
            var dbConnection = new StubIEntityContextConnection { NameOrConnectionStringGet = () => "asb-RegisterPluginSettingOptionRemovedTest" };
            Database.SetInitializer(new CreateFreshDbInitializer());
            var pluginBuilder = new PluginSettingBuilder( dbConnection, CancellationToken.None);
            var dbPlugin = UnitTesting.CreateFakePlugin();

            var pluginSetting = new PluginSetting
            {
                Name = "Plugin Setting 1",
                ValueType = DataType.STRING,
                Value = "Hello World",
                UniqueIdentifier = "PropertyTest"
            };
            dbPlugin.Settings.Add(pluginSetting);
            var option1 = new PluginSettingOption
            {
                Name = "Option 1",
            };
            var option2 = new PluginSettingOption
            {
                Name = "Option 2",
            };
            pluginSetting.Options.Add(option1);
            pluginSetting.Options.Add(option2);
            using (var context = new ZvsContext(dbConnection))
            {
                context.Plugins.Add(dbPlugin);
                await context.SaveChangesAsync();
            }
            var plugin = new StubUnitTestPlugin
            {
                PluginGuidGet = () => dbPlugin.PluginGuid
            };
            pluginSetting.Options.Remove(option2);

            //act
            var result = await pluginBuilder.Plugin(plugin).RegisterPluginSettingAsync(pluginSetting, o => o.PropertyTest);

            PluginSetting a;
            using (var context = new ZvsContext(dbConnection))
            {
                a = await context.PluginSettings
                    .Include(o => o.Options)
                    .FirstOrDefaultAsync(o => o.Id == pluginSetting.Id);
            }

            //assert 
            Console.WriteLine(result.Message);
            Assert.IsFalse(result.HasError);
            Assert.IsTrue(a.Options.Count == 1, "Expected 2 plugin setting options");
            Assert.IsTrue(a.Options[0].Name == option1.Name, "Plugin option name mismatch");
        }
Esempio n. 23
0
        public override async Task OnSettingsCreating(PluginSettingBuilder settingBuilder)
        {
            var annouceoptionssetting = new PluginSetting
            {
                Name = "Host",
                Value = "mqtt.myserver.com",
                ValueType = DataType.STRING,
                Description = "Enter the Host name for the broker."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(annouceoptionssetting, o => o.HostSetting);


            var portSetting = new PluginSetting
            {
                Name = "Port",
                Value = "1883",
                ValueType = DataType.INTEGER,
                Description = "Enter the port for the broker."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(portSetting, o => o.Port);


            var userNameSetting = new PluginSetting
            {
                Name = "Username",
                Value = "admin",
                ValueType = DataType.STRING,
                Description = "Enter the username for the broker."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(userNameSetting, o => o.UserName);


            var passwordSetting = new PluginSetting
            {
                Name = "Password",
                Value = "brokerpassword",
                ValueType = DataType.STRING,
                Description = "Enter the password for the broker."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(passwordSetting, o => o.Password);


            var topicSetting = new PluginSetting
            {
                Name = "Topic",
                Value = "zvirtual/{NodeNumber}/events",
                ValueType = DataType.STRING,
                Description = "Enter the topic for changes to be published to, on the broker."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(topicSetting, o => o.TopicFormat);



            var floodTopicSetting = new PluginSetting
            {
                Name = "Flood Topic",
                Value = "zvirtual/events",
                ValueType = DataType.STRING,
                Description = "Enter the topic name for all messages to get pushed to."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(floodTopicSetting, o => o.FloodTopic);


            var controlTopicSetting = new PluginSetting
            {
                Name = "Device Control Topic",
                Value = "zvirtual/control",
                ValueType = DataType.STRING,
                Description = "Enter the control topic for all devices."
            };

            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(controlTopicSetting, o => o.ControlTopicFormat);


        }
Esempio n. 24
0
        public override async Task OnSettingsCreating(PluginSettingBuilder settingBuilder)
        {
            var latSetting = new PluginSetting
            {
                UniqueIdentifier = "LAT",
                Name = "Latitude",
                Value = "37.6772222222222",
                ValueType = DataType.DECIMAL,
                Description = "Your Latitude in Decimal Notation. ex. 37.6772222222222"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(latSetting, o => o.LatitudeSetting);

            var longSetting = new PluginSetting
            {
                UniqueIdentifier = "LOG",
                Name = "Longitude",
                Value = "-113.061666666667",
                ValueType = DataType.DECIMAL,
                Description = "Your Longitude in Decimal Notation. ex. -113.061666666667"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(longSetting, o => o.LongitudeSetting);

            var delaySunriseSetting = new PluginSetting
            {
                UniqueIdentifier = "DELAY_SUNRISE",
                Name = "Minutes to delay sunrise",
                Value = "0",
                ValueType = DataType.DECIMAL,
                Description = "The minutes to delay sunrise as a positive or negative number"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(delaySunriseSetting, o => o.SunriseDelaySetting);

            var delaySunsetSetting = new PluginSetting
            {
                UniqueIdentifier = "DELAY_SUNSET",
                Name = "Minutes to delay sunset",
                Value = "0",
                ValueType = DataType.DECIMAL,
                Description = "The minutes to delay sunset as a positive or negative number"
            };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(delaySunsetSetting, o => o.SunsetDelaySetting);
        }
        public override async Task OnSettingsCreating(PluginSettingBuilder settingBuilder)
        {
            var portSetting = new PluginSetting
                {
                    Name = "Port",
                    Value = (1337).ToString(),
                    ValueType = DataType.INTEGER,
                    Description = "LightSwitch will listen for connections on this port."
                };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(portSetting, o => o.PortSetting);

            var maxConnSetting = new PluginSetting
                {
                    Name = "Max Conn.",
                    Value = (200).ToString(),
                    ValueType = DataType.INTEGER,
                    Description = "The maximum number of connections allowed."
                };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(maxConnSetting, o => o.MaxConnectionsSettings);

            var verboseSettings = new PluginSetting
                 {
                     Name = "Verbose Logging",
                     Value = false.ToString(),
                     ValueType = DataType.BOOL,
                     Description = "(Writes all server client communication to the log for debugging.)"
                 };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(verboseSettings, o => o.VerboseSetting);

            var passwordSetting = new PluginSetting
                 {
                     Name = "Password",
                     Value = "ChaNgeMe444",
                     ValueType = DataType.STRING,
                     Description = "The password clients must use to connect to the LightSwitch server. "
                 };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(passwordSetting, o => o.PasswordSetting);

            var sortSetting = new PluginSetting
                {
                    Name = "Sort Device List",
                    Value = true.ToString(),
                    ValueType = DataType.BOOL,
                    Description = "(Alphabetically sorts the device list.)"
                };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(sortSetting, o => o.SortListSetting);

            var bonjourSetting = new PluginSetting
             {
                 Name = "Publish ZeroConf/Bonjour",
                 Value = false.ToString(),
                 ValueType = DataType.BOOL,
                 Description = "Zero configuration networking allows clients on your network to detect and connect to your LightSwitch server automatically."
             };
            await settingBuilder.Plugin(this).RegisterPluginSettingAsync(bonjourSetting, o => o.UseBonjourSetting);

        }