Exemple #1
0
        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");
		}
Exemple #4
0
        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");
        }
Exemple #5
0
        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;
			}
		}
Exemple #8
0
        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;
                }
            }
        }
Exemple #9
0
        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);
		}
Exemple #11
0
 public override void Visit(WizardControllerTreeNode node)
 {
     Visit((ControllerTreeNode)node);
 }
Exemple #12
0
 public virtual void Visit(WizardControllerTreeNode node)
 {
     Accept(node.Children);
 }
Exemple #13
0
		public virtual void Visit(WizardControllerTreeNode node)
		{
			Accept(node.Children);
		}