예제 #1
0
 public Task UpdateEnvironmentVariable(DeviceEnvironmentVariable variable,
                                       CancellationToken cancellationToken = new CancellationToken())
 {
     return(_client.MakeRequestAsync(
                cancellationToken,
                HttpMethod.Put,
                ResourceUrls.DeviceEnvironmentVariables,
                content: variable.ToJsonContent()));
 }
예제 #2
0
        public static DeviceEnvironmentVariable InsertDeviceEnvironmentVariable(
            this IDbConnection connection,
            IDbTransaction transaction,
            Guid deviceId,
            string name,
            string value)
        {
            var variable = new DeviceEnvironmentVariable
            {
                DeviceId = deviceId,
                Name     = name,
                Value    = value
            }.SetNew();

            connection.Insert(variable, transaction);

            return(variable);
        }
        public IActionResult Put([FromBody] DeviceEnvironmentVariable variable)
        {
            using (var connection = _connectionFactory.CreateAndOpen())
                using (var transaction = connection.BeginTransaction())
                {
                    //Get the original so we can log the delta.
                    DeviceEnvironmentVariable original = connection.Get <DeviceEnvironmentVariable>(variable.Id, transaction);

                    if (original == null)
                    {
                        return(NotFound());
                    }

                    const string sql = " update DeviceEnvironmentVariables set" +
                                       "  Name = @Name," +
                                       "  Value = @Value " +
                                       "where" +
                                       "  Id = @Id";

                    //Update it (and ensure that it happened)
                    if (connection.Execute(sql, variable, transaction) != 1)
                    {
                        return(NotFound());
                    }

                    //Insert an event
                    connection.InsertDeviceEvent(
                        transaction,
                        variable.DeviceId,
                        DeviceEventType.EnvironmentVariableUpdated,
                        $"Device Environment variable changed from ({original.Name}/{original.Value}) to ({variable.Name}/{variable.Value}).");

                    //Update the configuration version
                    connection.SetNewDeviceConfigurationVersionForDevice(transaction, original.DeviceId);

                    //We're done
                    transaction.Commit();
                }

            return(Ok());
        }
        public IActionResult Delete(Guid id)
        {
            using (var connection = _connectionFactory.CreateAndOpen())
                using (var transaction = connection.BeginTransaction())
                {
                    //Get the device variable (so we can log the using the DeviceId)
                    DeviceEnvironmentVariable original = connection.Get <DeviceEnvironmentVariable>(id, transaction);

                    if (original == null)
                    {
                        return(NotFound());
                    }

                    const string deleteSql = "delete from DeviceEnvironmentVariables where Id = @Id";

                    //Delete it!
                    if (connection.Execute(deleteSql, new { Id = id }, transaction) != 1)
                    {
                        return(NotFound());
                    }

                    //Insert an event
                    connection.InsertDeviceEvent(
                        transaction,
                        original.DeviceId,
                        DeviceEventType.EnvironmentVariableUpdated,
                        $"Device Environment variable '{original.Name}' deleted.");

                    //Update the configuration version
                    connection.SetNewDeviceConfigurationVersionForDevice(transaction, original.DeviceId);

                    //We're done here.
                    transaction.Commit();
                }

            return(Ok());
        }