Esempio n. 1
0
        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);
        }