示例#1
0
        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));
 }
示例#3
0
        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);
        }