public async Task Create(string name, string ipAddress, int userId) { var template = templateStorage.GetTemplate("Template.txt"); var entity = new Host() { Name = name, Ip = ipAddress, CreatedByUserId = userId }; await entity.Create(dbContext); var config = await dbContext.PluginConfigurationValues.ToDictionaryAsync(t => t.Name); var serverName = $"{name}.{config["BaseSettings:Host"].Value}"; var accessLog = string.Format(config["BaseSettings:AccessLogTemplate"].Value, name); var errorLog = string.Format(config["BaseSettings:ErrorLogTemplate"].Value, name); var configFileTemplate = string.Format(template, serverName, accessLog, errorLog, ipAddress); templateStorage.Save(config["BaseSettings:DestinationPath"].Value, serverName, configFileTemplate); var command = config["BaseSettings:PostExecuteCommand"].Value.Split(" ", System.StringSplitOptions.RemoveEmptyEntries); var result = RunCommand(command[0], string.Join(' ', command.Skip(1))); logger.LogInformation("Command execution result: {result}", result); }