Ejemplo n.º 1
0
 /// <summary>
 /// Sets error on node. In case if node already has been marked with error, just adds additional error message.
 /// </summary>
 /// <param name="node">Node to be marked with error</param>
 /// <param name="errorMessage">Error message that describes the error</param>
 public static void SetErrorOnNode(ExperimentNode node, string errorMessage)
 {
     if (node.HasError)
     {
         //add message to existing errorMessage
         node.SetError(node.ErrorMessage + System.Environment.NewLine + errorMessage);
     }
     else
     {
         node.SetError(errorMessage);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Compiles the decision.
        /// </summary>
        /// <param name="node">The node.</param>
        /// <param name="experiment">The experiment.</param>
        /// <param name="workspaceTypesDirectories">The workspace types directories.</param>
        /// <param name="loggerNameRoot">The logger name root.</param>
        private static void CompileDecisionInternal(ExperimentNode node, IExperiment experiment, List <string> workspaceTypesDirectories,
                                                    LoggerNameRoot loggerNameRoot, Dictionary <string, string> successorNodeLabelIdLookup)
        {
            InputMappings availableInputMappingsPerNode = new InputMappings(experiment);

            Dictionary <string, string> predeccessorsOutputsNameTypeLookup = PreparePredeccessorsOutputsNameTypeLookup(node, availableInputMappingsPerNode);

            IDecision decisionMetadata = (IDecision)node.Data.Metadata;

            try
            {
                if (decisionMetadata != null)
                {
                    node.ClearError();

                    BuildSourceAndCompileDecisionModule(decisionMetadata, successorNodeLabelIdLookup, predeccessorsOutputsNameTypeLookup, workspaceTypesDirectories, loggerNameRoot);

                    decisionMetadata.CompilationStatus = TraceLab.Core.Components.CompilationStatus.Successful;
                }
            }
            catch (ArgumentException ex)
            {
                decisionMetadata.CompilationStatus = TraceLab.Core.Components.CompilationStatus.Failed;
                node.SetError(ex.Message);
            }
        }