protected CodeExpression CreateNewWizardStepReference(WizardControllerTreeNode node, string wizardStepPage) { CodeExpression createMethodSignature = new CodeObjectCreateExpression( source[typeof(MethodSignature)], new CodeExpression[] { new CodeTypeOfExpression(node.FullName), new CodePrimitiveExpression(node.Name), new CodeArrayCreateExpression(source[typeof(Type)], 0) }); var constructionArguments = new[] { new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), naming.ToMemberVariableName(serviceIdentifier)), new CodeTypeOfExpression(node.FullName), new CodePrimitiveExpression(node.Area), new CodePrimitiveExpression(naming.ToControllerName(node.Name)), new CodePrimitiveExpression(wizardStepPage), createMethodSignature, new CodeArrayCreateExpression(source[typeof(ActionArgument)], 0) }; return(new CodeMethodInvokeExpression( new CodeMethodReferenceExpression( new CodePropertyReferenceExpression( new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), naming.ToMemberVariableName(serviceIdentifier)), "ControllerReferenceFactory"), "CreateActionReference"), constructionArguments)); }
protected CodeExpression CreateNewWizardStepReference(WizardControllerTreeNode node, string wizardStepPage) { CodeExpression createMethodSignature = new CodeObjectCreateExpression( source[typeof (MethodSignature)], new CodeExpression[] { new CodeTypeOfExpression(node.FullName), new CodePrimitiveExpression(node.Name), new CodeArrayCreateExpression(source[typeof (Type)], 0) }); var constructionArguments = new[] { new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), naming.ToMemberVariableName(serviceIdentifier)), new CodeTypeOfExpression(node.FullName), new CodePrimitiveExpression(node.Area), new CodePrimitiveExpression(naming.ToControllerName(node.Name)), new CodePrimitiveExpression(wizardStepPage), createMethodSignature, new CodeArrayCreateExpression(source[typeof (ActionArgument)], 0) }; return new CodeMethodInvokeExpression( new CodeMethodReferenceExpression( new CodePropertyReferenceExpression( new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), naming.ToMemberVariableName(serviceIdentifier)), "ControllerReferenceFactory"), "CreateActionReference"), constructionArguments); }
public void VisitControllerNode_Always_CreatesType() { var node = new WizardControllerTreeNode("HomeController", "ControllerNamespace", new[] {"Step1"}); mocks.ReplayAll(); generator.Visit(node); mocks.VerifyAll(); CodeDomAssert.AssertHasField(source.Ccu.Namespaces[0].Types[0], "_services"); }
public void VisitControllerNode_Always_CreatesType() { var node = new WizardControllerTreeNode("HomeController", "ControllerNamespace", new[] { "Step1" }); mocks.ReplayAll(); generator.Visit(node); mocks.VerifyAll(); CodeDomAssert.AssertHasField(source.Ccu.Namespaces[0].Types[0], "_services"); }
public override void Visit(WizardControllerTreeNode node) { CodeTypeDeclaration type = GenerateTypeDeclaration(_namespace, node.PathNoSlashes + _naming.ToWizardStepWrapperName(node.Name)); foreach (string wizardStepPage in node.WizardStepPages) { CodeMemberMethod method = new CodeMemberMethod(); method.Name = wizardStepPage; method.ReturnType = _source[typeof(IControllerActionReference)]; method.Attributes = MemberAttributes.Public; method.CustomAttributes.Add(_source.DebuggerAttribute); method.Statements.Add(new CodeMethodReturnStatement(CreateNewWizardStepReference(node, wizardStepPage))); type.Members.Add(method); } base.Visit(node); }
public override void Visit(WizardControllerTreeNode node) { var type = GenerateTypeDeclaration(@namespace, node.PathNoSlashes + naming.ToWizardStepWrapperName(node.Name)); foreach (var wizardStepPage in node.WizardStepPages) { var method = new CodeMemberMethod { Name = wizardStepPage, ReturnType = source[typeof (IControllerActionReference)], Attributes = MemberAttributes.Public }; method.CustomAttributes.Add(source.DebuggerAttribute); method.Statements.Add(new CodeMethodReturnStatement(CreateNewWizardStepReference(node, wizardStepPage))); type.Members.Add(method); } base.Visit(node); }
public override void Visit(WizardControllerTreeNode node) { Visit((ControllerTreeNode) node); var codeNamespace = source.LookupNamespace(@namespace); foreach (CodeTypeDeclaration type in codeNamespace.Types) { if (type.Name != (node.PathNoSlashes + naming.ToControllerWrapperName(node.Name))) continue; type.Members.Add( source.CreateReadOnlyProperty( "Steps", new CodeTypeReference(node.PathNoSlashes + naming.ToWizardStepWrapperName(node.Name)), new CodeObjectCreateExpression( new CodeTypeReference(node.PathNoSlashes + naming.ToWizardStepWrapperName(node.Name)), new CodeFieldReferenceExpression(source.This, naming.ToMemberVariableName(serviceIdentifier))))); break; } }
public override void Visit(WizardControllerTreeNode node) { Visit((ControllerTreeNode)node); CodeNamespace codeNamespace = _source.LookupNamespace(_namespace); foreach (CodeTypeDeclaration type in codeNamespace.Types) { if (type.Name == (node.PathNoSlashes + _naming.ToControllerWrapperName(node.Name))) { type.Members.Add( _source.CreateReadOnlyProperty("Steps", new CodeTypeReference(node.PathNoSlashes + _naming.ToWizardStepWrapperName(node.Name)), new CodeObjectCreateExpression( new CodeTypeReference(node.PathNoSlashes + _naming.ToWizardStepWrapperName(node.Name)), new CodeFieldReferenceExpression(_source.This, _naming.ToMemberVariableName(_serviceIdentifier))))); break; } } }
public void Parsing_WizardController_() { using (_mocks.Unordered()) { _typeResolver.UseNamespace("SomeNamespace", true); _typeResolver.UseNamespace("System"); } _mocks.ReplayAll(); Parse(WizardControllerType, true); _mocks.VerifyAll(); TreeNode node = _treeService.Peek; Assert.AreEqual(1, node.Children.Count); WizardControllerTreeNode wizardControllerTreeNode = (WizardControllerTreeNode)node.Children[0]; Assert.AreEqual(2, wizardControllerTreeNode.WizardStepPages.Length); Assert.AreEqual("FirstStep", wizardControllerTreeNode.WizardStepPages[0]); Assert.AreEqual("SecondStep", wizardControllerTreeNode.WizardStepPages[1]); }
public override void Visit(WizardControllerTreeNode node) { Visit((ControllerTreeNode) node); }
public override void Visit(WizardControllerTreeNode node) { Visit((ControllerTreeNode)node); }
public virtual void Visit(WizardControllerTreeNode node) { Accept(node.Children); }