Exemple #1
0
        private void FillAdditionalCsharpCodeData(CodeStepCsharp csharpCode, XElement stepElement)
        {
            Action <CodeStepCsharp, string> addAction;

            if (stepElement.HaveChildElement(LessonXmlElements.CodeDependenciesElement))
            {
                addAction = (code, at) => code.OtherCodeDependencies.Add(at);
                FillElementChildrenCollection(csharpCode, stepElement, LessonXmlElements.CodeDependenciesElement,
                                              LessonXmlElements.CodeDependencyElement, addAction);
            }

            if (stepElement.HaveChildElement(LessonXmlElements.AllowedTypesConstructedElement))
            {
                addAction = (code, at) => code.AllowedTypesConstructed.Add(at);
                FillElementChildrenCollection(csharpCode, stepElement, LessonXmlElements.AllowedTypesConstructedElement,
                                              LessonXmlElements.AllowedTypeElement, addAction);
            }

            if (stepElement.HaveChildElement(LessonXmlElements.AllowedMethodsCalledElement))
            {
                addAction = (code, at) => code.AllowedMethodsCalled.Add(at);
                FillElementChildrenCollection(csharpCode, stepElement, LessonXmlElements.AllowedMethodsCalledElement,
                                              LessonXmlElements.AllowedMethodElement, addAction);
            }
        }
Exemple #2
0
        private CodeStepCsharp CreateCodeCsharpStep(XElement stepElement, int index)
        {
            var csharpStep = new CodeStepCsharp();

            FillStepCodeData(csharpStep, stepElement, index);
            CreateValidator(csharpStep, stepElement);
            FillAdditionalCsharpCodeData(csharpStep, stepElement);
            return(csharpStep);
        }
Exemple #3
0
        private static void FillElementChildrenCollection(CodeStepCsharp csharpCode, XElement parentStepElement,
                                                          string elementWithCollectionName, string itemElementName, Action <CodeStepCsharp, string> addAction)
        {
            var otherCodeDependencies = parentStepElement.GetChildCollection(elementWithCollectionName, itemElementName);

            foreach (var dependency in otherCodeDependencies)
            {
                addAction.Invoke(csharpCode, dependency.GetElementStringValue());
            }
        }
 public CSharpCodeSafetyVisitor(CodeStepCsharp step, SemanticModel model)
 {
     this.step  = step;
     this.model = model;
 }