Esempio n. 1
0
 public NidaWorkflowEngine(IRuleCollectionFactory ruleCollectionFactory, IRuleEngineFactory ruleEngineFactory,
                           IMessageCollector messageCollector)
 {
     _ruleCollectionFactory = ruleCollectionFactory;
     _ruleEngineFactory     = ruleEngineFactory;
     _messageCollector      = messageCollector;
 }
Esempio n. 2
0
 public void CheckTargetNodeId(IMessageCollector errors)
 {
     if (String.IsNullOrEmpty(TargetNodeId))
     {
         errors.LogMessage(LineNumber, MessageType.IncorrectPattern, "Goto pattern without target node reference => dead end");
     }
 }
 public GetSectionDtoByKeyRequestHandler(IAssessmentDefinitionRepository assessmentDefinitionRepository,
                                         IAssessmentInstanceRepository assessmentInstanceRepository,
                                         IWorkflowMessageRepository workflowMessageRepository,
                                         IMessageCollector messageCollector)
 {
     _assessmentDefinitionRepository = assessmentDefinitionRepository;
     _assessmentInstanceRepository   = assessmentInstanceRepository;
     _workflowMessageRepository      = workflowMessageRepository;
     _messageCollector = messageCollector;
 }
 /// <summary>Initializes a new instance of the <see cref="GetAssessmentSectionSummaryDtoByKeyRequestHandler" /> class.</summary>
 /// <param name="assessmentInstanceRepository">The assessment instance repository.</param>
 /// <param name="assessmentDefinitionRepository">The assessment definition repository.</param>
 /// <param name="workflowMessageRepository">The workflow message repository.</param>
 /// <param name="messageCollector">The message collector.</param>
 /// <param name="assessmentCompletenessManager">The assessment completeness manager.</param>
 public GetAssessmentSectionSummaryDtoByKeyRequestHandler(
     IAssessmentInstanceRepository assessmentInstanceRepository,
     IAssessmentDefinitionRepository assessmentDefinitionRepository,
     IWorkflowMessageRepository workflowMessageRepository,
     IMessageCollector messageCollector,
     IAssessmentCompletenessManager assessmentCompletenessManager)
 {
     _assessmentInstanceRepository   = assessmentInstanceRepository;
     _assessmentDefinitionRepository = assessmentDefinitionRepository;
     _workflowMessageRepository      = workflowMessageRepository;
     _messageCollector = messageCollector;
     _assessmentCompletenessManager = assessmentCompletenessManager;
 }
Esempio n. 5
0
        public Message(IMessageCollector messageCollector, IWriter textWriter)
        {
            if (messageCollector == null)
            {
                throw new ArgumentNullException("Message collector");
            }
            _messageCollector = messageCollector;

            if (textWriter == null)
            {
                throw new ArgumentNullException("Text writer");
            }
            _textWriter = textWriter;
        }
Esempio n. 6
0
 public RedirectToLongTail(DialogNode parentNode, string targetNodeId, string messageExpression, string messageText, IMessageCollector errors) :
     base(parentNode, targetNodeId, messageExpression, messageText, errors)
 {
     Type = DialogNodeType.RedirectToLongTail;
 }
Esempio n. 7
0
 public FatHeadAnswers(DialogNode parentNode, string targetNodeId, string messageExpression, string messageText, IMessageCollector errors) :
     base(parentNode, targetNodeId, messageExpression, messageText, errors)
 {
     Type = DialogNodeType.FatHeadAnswers;
 }
Esempio n. 8
0
 public DirectAnswer(DialogNode parentNode, string targetNodeId, string messageExpression, string messageText, IMessageCollector errors) :
     base(parentNode, targetNodeId, messageExpression, messageText, errors)
 {
     Type = DialogNodeType.DirectAnswer;
 }
Esempio n. 9
0
 public GotoNode(DialogNode parentNode, string targetNodeId, string messageExpression, string messageText, IMessageCollector errors)
 {
     Type              = DialogNodeType.GotoNode;
     ParentNode        = parentNode;
     ChildrenNodes     = null;
     TargetNodeId      = targetNodeId;
     MessageExpression = messageExpression;
     MessageText       = messageText;
 }
Esempio n. 10
0
 public GotoNode(DialogNode parentNode, string targetNodeId, IMessageCollector errors) :
     this(parentNode, targetNodeId, null, null, errors)
 {
 }
Esempio n. 11
0
        public void AddVariableValuesRestriction(DialogVariableCheck variableValueRestriction, IMessageCollector errors)
        {
            // Check variable name
            bool variableFoundInConditions = false;

            foreach (var condition in VariableConditions)
            {
                if (condition.VariableName == variableValueRestriction.VariableName)
                {
                    variableFoundInConditions = true;
                    break;
                }
            }
            if (!variableFoundInConditions)
            {
                errors.LogMessage(LineNumber, MessageType.IncorrectPattern, "Allowed variable values restricted by federation group for variable name " + variableValueRestriction.VariableName + ", but this variable name wasn't referenced in the conditions nodes");
            }
            VariableValuesRestriction = variableValueRestriction;
        }
        public void OnAllEntityValuesAdded(IMessageCollector errors)
        {
            // Entity value names comparison isn't case sensitive
            EntityValueNamesDictionary = new Dictionary <string, EntityValue>(StringComparer.InvariantCultureIgnoreCase);
            // Canonical values comparison isn't case sensitive
            EntityValuesDictionary = new Dictionary <string, EntityValue>(StringComparer.InvariantCultureIgnoreCase);
            // Synonyms from concepts comparison isn't case sensitive
            EntityValueFromConceptDictionary = new Dictionary <string, EntityValue>(StringComparer.InvariantCultureIgnoreCase);
            EntityValueSynonymsDictionary    = new Dictionary <string, EntityValue>(StringComparer.InvariantCultureIgnoreCase);

            foreach (var entityValue in Values)
            {
                if (!EntityValueNamesDictionary.ContainsKey(entityValue.Name))
                {
                    EntityValueNamesDictionary.Add(entityValue.Name, entityValue);
                }
                else
                {
                    var otherEntityValue = EntityValueNamesDictionary[entityValue.Name];
                    errors.LogMessage(entityValue.LineNumber, MessageType.DuplicateKey, "Entity " + Name + " - two entity values declared with the same name \"" + entityValue.Name + "\" : line " + entityValue.LineNumber + " " + entityValue.CanonicalValue + ", and line " + otherEntityValue.LineNumber + " " + otherEntityValue.CanonicalValue);
                }
                if (!EntityValuesDictionary.ContainsKey(entityValue.CanonicalValue))
                {
                    EntityValuesDictionary.Add(entityValue.CanonicalValue, entityValue);
                }
                else
                {
                    var otherEntityValue = EntityValuesDictionary[entityValue.CanonicalValue];
                    errors.LogMessage(entityValue.LineNumber, MessageType.DuplicateKey, "Entity " + Name + " - two entity values declared with the same value \"" + entityValue.CanonicalValue + "\" : line " + entityValue.LineNumber + " " + entityValue.Name + ", and line " + otherEntityValue.LineNumber + " " + otherEntityValue.Name);
                }
                if (entityValue.Concepts != null)
                {
                    foreach (var concept in entityValue.Concepts)
                    {
                        var conceptCanonicalValue = concept.CanonicalValue;
                        if (!EntityValueFromConceptDictionary.ContainsKey(conceptCanonicalValue))
                        {
                            EntityValueFromConceptDictionary.Add(conceptCanonicalValue, entityValue);
                        }
                        foreach (var synonym in concept.Synonyms)
                        {
                            if (!EntityValueSynonymsDictionary.ContainsKey(synonym))
                            {
                                EntityValueSynonymsDictionary.Add(synonym, entityValue);
                            }
                            else
                            {
                                var conflictingEntityValue = EntityValueSynonymsDictionary[synonym];
                                if (entityValue.Name != conflictingEntityValue.Name)
                                {
                                    errors.LogMessage(entityValue.LineNumber, MessageType.DuplicateKey, "Entity " + Name + " : concept synonym \"" + synonym + "\" defined for entity value \"" + entityValue.Name + "\" is conflicting with an identical concept synonym previoulsy defined for another entity value of the same entity : \"" + conflictingEntityValue.Name + "\" on line " + conflictingEntityValue.LineNumber);
                                }
                            }
                        }
                    }
                }
            }

            // Generate regular expression to match entity values
            StringBuilder regexBuilder = new StringBuilder();

            regexBuilder.Append("\\b(");
            bool isFirstValue = true;

            foreach (var entityValue in EntityValuesDictionary.Values.OrderByDescending(ev => ev.CanonicalValue.Length))
            {
                if (isFirstValue)
                {
                    isFirstValue = false;
                }
                else
                {
                    regexBuilder.Append("|");
                }
                regexBuilder.Append(Regex.Escape(entityValue.CanonicalValue));
                if (entityValue.Concepts != null)
                {
                    foreach (var concept in entityValue.Concepts)
                    {
                        regexBuilder.Append("|");
                        regexBuilder.Append(Regex.Escape(concept.CanonicalValue));
                    }
                }
            }
            regexBuilder.Append(")\\b");
            EntityValuesRegex = new Regex(regexBuilder.ToString(), RegexOptions.IgnoreCase);
        }
 internal void AddEntityValue(EntityValue entityValue, IMessageCollector errors)
 {
     Values.Add(entityValue);
 }
Esempio n. 14
0
 public SubmitAssessmentRequestHandler(IAssessmentInstanceRepository assessmentInstanceRepository, IMessageCollector messageCollector)
 {
     _assessmentInstanceRepository = assessmentInstanceRepository;
     _messageCollector             = messageCollector;
 }