コード例 #1
0
        public SequenceScript AddScriptToSequence(String sequenceId, String scriptId, ScriptType scriptType, String scriptName, Dictionary <String, String> parameters)
        {
            Sequence sequence = _sequenceDataAccess.Get(sequenceId);
            Script   script   = _scriptDataAccess.Get(scriptId);

            if ((sequence != null) && (script != null))
            {
                IGhostRunnerScript ghostRunnerScript = ScriptHelper.GetGhostRunnerScript(script);

                int scriptPosition = _sequenceScriptDataAccess.GetNextPosition(sequenceId);
                if (scriptPosition < 1)
                {
                    scriptPosition = 1;
                }

                SequenceScript sequenceScript = new SequenceScript();
                sequenceScript.ExternalId = System.Guid.NewGuid().ToString();
                sequenceScript.Sequence   = sequence;
                sequenceScript.Type       = scriptType;
                sequenceScript.Name       = scriptName;
                sequenceScript.Content    = script.Content;

                foreach (String scriptParameter in ghostRunnerScript.GetAllParameters())
                {
                    String parameterValue = String.Empty;
                    if (parameters.ContainsKey(scriptParameter))
                    {
                        parameterValue = parameters[scriptParameter];
                    }

                    sequenceScript.Content = Regex.Replace(sequenceScript.Content, "\\[\\[" + scriptParameter + "\\]\\]", parameterValue);
                }

                sequenceScript.Position = scriptPosition;

                _sequenceScriptDataAccess.Insert(sequenceScript);

                _sequenceScriptDataAccess.UpdateScriptOrder(sequenceId);

                return(sequenceScript);
            }
            else
            {
                return(null);
            }
        }