public ApplicationEnvironmentVariable Post([FromBody] CreateApplicationEnvironmentVariableRequest request) { using (var connection = _connectionFactory.CreateAndOpen()) using (var transaction = connection.BeginTransaction()) { //Insert the variable var variable = connection.InsertApplicationEnvironmentVariable(transaction, request.ApplicationId, request.Name, request.Value); //Insert an event connection.InsertApplicationEvent( transaction, variable.ApplicationId, ApplicationEventType.EnvironmentVariableCreated, $"Application Environment variable '{variable.Name}' created with value: '{variable.Value}'."); //Update the configuration version connection.SetNewDeviceConfigurationVersionForApplication(transaction, request.ApplicationId); //We're done transaction.Commit(); return(variable); } }
public Task <ApplicationEnvironmentVariable> CreateEnvironmentVariableAsync(CreateApplicationEnvironmentVariableRequest request, CancellationToken cancellationToken = new CancellationToken()) { return(_client.MakeJsonRequestAsync <ApplicationEnvironmentVariable>( cancellationToken, HttpMethod.Post, ResourceUrls.ApplicationEnvironmentVariables, request: request)); }
protected override async Task <int> ExecuteAsync(CommandContext context, CancellationToken cancellationToken) { // Get the application var application = await context.FindApplicationAsync(Application, cancellationToken); if (application == null) { return(1); } //Get the existing variables var variables = await context.Client.ApplicationEnvironmentVariables.GetEnvironmentVariables(application.Id, cancellationToken); var variable = variables.FirstOrDefault(v => v.Name == Name); if (variable == null) { var request = new CreateApplicationEnvironmentVariableRequest() { ApplicationId = application.Id, Name = Name, Value = Value }; //Create the new one await context.Client.ApplicationEnvironmentVariables.CreateEnvironmentVariableAsync(request, cancellationToken); } else { //Create a new one variable.Value = Value; //Update the existing one await context.Client.ApplicationEnvironmentVariables.UpdateEnvironmentVariable(variable, cancellationToken); } return(0); }