private DomainValue EvaluateReference(SharedDomainReferenceNode theExpressionNode, WorkspaceModel theWorkspace)
        {
            var sharedDomainName  = theExpressionNode.DomainName;
            var sharedDomainModel = theWorkspace.Model.GetSharedDomainByName(sharedDomainName.Name);

            var evaluatorContext = new SharedDomainExpressionEvaluatorContext(sharedDomainModel.Expression.Node, theWorkspace);

            return(SharedDomainExpressionEvaluator.Evaluate(evaluatorContext));
        }
        /// <summary>
        /// Evaluate a shared domain reference.
        /// </summary>
        /// <param name="theExpressionNode">Shared domain reference node.</param>
        /// <param name="theWorkspace">The model.</param>
        /// <returns>Domain value.</returns>
        internal static DomainValue Evaluate(SharedDomainReferenceNode theExpressionNode, WorkspaceModel theWorkspace)
        {
            var evaluator = new DomainExpressionEvaluator();

            return(evaluator.EvaluateReference(theExpressionNode, theWorkspace));
        }