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);
        }
示例#2
0
 // 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);
 }
示例#3
0
    public void LanguageClicked(string lang)
    {
        // Get base definition.
        LanguageDefinition def = LanguageDefinition.Core;

        // Generate definitions...
        DefinitionGenerator.GenerateDefinitions(def.Data);

        // Load language
        Language loaded = LanguageIO.LoadLanguage(lang);

        CurrentLang.LangChange(loaded);
        CurrentLang.SavePressed();
        CurrentLang.SpawnAll(def, loaded);
    }
示例#4
0
        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);
        }
示例#5
0
        // 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();
        }