public DeploymentScriptModel([NotNull] Deployment.ScriptSymbol symbol) : base(symbol, ModelType.DeploymentScript) { Parameters = new List <ParameterModel>(); Parameters.AddRange(symbol.Parameters.Select(p => new ParameterModel(p))); Definitions = DefinitionGenerator.GetDefinitions(symbol.Defs, ((Deployment.Script)symbol.FirstDeclarationOrDefault).Definitions); Options = new List <ValueModel>(); foreach (var option in ((Deployment.Script)symbol.FirstDeclarationOrDefault).Options) { switch (option) { case DeploymentOption.Success success: Options.Add(new ValueModel(success.Value, TypesOfValue.Success, success.Location)); break; case DeploymentOption.ForReboot reboot: Options.Add(new ValueModel(reboot.Value, TypesOfValue.Reboot, reboot.Location)); break; case DeploymentOption.Timeout timeout: Options.Add(new ValueModel(symbol.Timeout.Value, TypesOfValue.Timeout, timeout.Location)); break; default: Logger.Error($"unsupported option type: {option}"); break; } } ScriptReference = ScriptReference.Create(symbol); }
// ReSharper disable once NotNullMemberIsNotInitialized public ProductModel([NotNull] Product.DefSymbol symbol) : base(symbol, ModelType.Product) { _typeId = symbol.ProductType.Id; Definitions = DefinitionGenerator.GetDefinitions(symbol.Defs, ((Product.Def)symbol.FirstDeclarationOrDefault).Definitions); }
public ScenarioModel([NotNull] Tdl.Scenario.DefSymbol symbol) : base(symbol, ModelType.Scenario) { Definitions = DefinitionGenerator.GetDefinitions(symbol.Defs, ((Tdl.Scenario.Def)symbol.FirstDeclarationOrDefault).Definitions); var reference = ((Tdl.Scenario.Def)symbol.FirstDeclarationOrDefault).DeploymentRef; Deployment = new ReferenceModel <DeploymentBaseModel>(reference.Symbol.Id, reference.Location); Environments = new List <ScenarioEnvironmentModel>(); Environments.AddRange( symbol.Environments.Select(env => new ScenarioEnvironmentModel(env))); Actions = new List <BaseActionModel>(); ParseMethods(symbol.Actions); }
// ReSharper disable once NotNullMemberIsNotInitialized public SuiteDefModel([NotNull] Tdl.Suite.DefSymbol symbol) : base(symbol, ModelType.Suite) { _platformId = symbol.Platform.Id; _productId = symbol.Product.Id; Definitions = DefinitionGenerator.GetDefinitions(symbol.Defs, ((Tdl.Suite.Def)symbol.FirstDeclarationOrDefault).Definitions); if (symbol.Type.HasDeclarations) { _suiteTypeId = symbol.Type.Id; } Statements = new List <ScenarioBaseModel>(); _statementsIds = symbol.Statements .OfType <SuiteStatement.CallScenario>() .Select(statement => statement.Reference.Id) .ToArray(); }