public DeviceEnvironmentVariable Post([FromBody] CreateDeviceEnvironmentVariableRequest request)
        {
            using (var connection = _connectionFactory.CreateAndOpen())
                using (var transaction = connection.BeginTransaction())
                {
                    //Insert the variable
                    var variable = connection.InsertDeviceEnvironmentVariable(transaction, request.DeviceId, request.Name,
                                                                              request.Value);

                    //Insert an event
                    connection.InsertDeviceEvent(
                        transaction,
                        variable.DeviceId,
                        DeviceEventType.EnvironmentVariableCreated,
                        $"Device Environment variable '{variable.Name}' created with value: '{variable.Value}'.");

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

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

                    return(variable);
                }
        }
Exemplo n.º 2
0
 public Task <DeviceEnvironmentVariable> CreateEnvironmentVariableAsync(CreateDeviceEnvironmentVariableRequest request,
                                                                        CancellationToken cancellationToken = new CancellationToken())
 {
     return(_client.MakeJsonRequestAsync <DeviceEnvironmentVariable>(
                cancellationToken,
                HttpMethod.Post,
                ResourceUrls.DeviceEnvironmentVariables,
                request: request));
 }
Exemplo n.º 3
0
        protected override async Task <int> ExecuteAsync(CommandContext context, CancellationToken cancellationToken)
        {
            //Get the device
            var device = await context.FindDeviceAsync(Device, cancellationToken);

            if (device == null)
            {
                return(1);
            }

            //Get the existing variables
            var variables = await context.Client.DeviceEnvironmentVariables.GetEnvironmentVariables(device.Id, cancellationToken);

            var variable = variables.FirstOrDefault(v => v.Name == Name);

            if (variable == null)
            {
                var request = new CreateDeviceEnvironmentVariableRequest()
                {
                    DeviceId = device.Id,
                    Name     = Name,
                    Value    = Value
                };

                //Create the new one
                await context.Client.DeviceEnvironmentVariables.CreateEnvironmentVariableAsync(request,
                                                                                               cancellationToken);
            }
            else
            {
                //Create a new one
                variable.Value = Value;

                //Update the existing one
                await context.Client.DeviceEnvironmentVariables.UpdateEnvironmentVariable(variable, cancellationToken);
            }

            return(0);
        }