From b880cd3554ce2e96af2987890fb3085f68c3b6a4 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sun, 14 Aug 2011 14:33:08 +0100 Subject: [PATCH] Add create/read/update/delete ASP.NET MVC controller template. --- .../AspNet.Mvc/Project/AspNet.Mvc.csproj | 1 + .../CodeTemplates/AddController/Controller.tt | 34 +++++++++ .../CodeTemplates/AddController/Controller.tt | 28 +++++++ .../Src/AddMvcControllerToProjectView.xaml | 50 ++++++++----- .../Src/AddMvcControllerToProjectViewModel.cs | 49 ++++++++++++ .../Src/IMvcControllerFileGenerator.cs | 1 + .../Project/Src/IMvcTextTemplateHost.cs | 2 + .../Project/Src/MvcControllerFileGenerator.cs | 3 + .../Src/MvcControllerTemplateViewModel.cs | 27 +++++++ .../Project/Src/MvcTextTemplateHost.cs | 2 + .../Helpers/FakeMvcControllerFileGenerator.cs | 1 + .../Test/Helpers/FakeMvcTextTemplateHost.cs | 1 + ...AddMvcControllerToProjectViewModelTests.cs | 74 +++++++++++++++++++ .../Src/AddMvcViewToProjectViewModelTests.cs | 2 +- .../Src/MvcControllerFileGeneratorTests.cs | 28 +++++++ 15 files changed, 285 insertions(+), 18 deletions(-) create mode 100644 src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcControllerTemplateViewModel.cs diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj b/src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj index a923963f5e..c1424dcc32 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj @@ -76,6 +76,7 @@ + diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddController/Controller.tt b/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddController/Controller.tt index 7e6c7326a9..d883d949d5 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddController/Controller.tt +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddController/Controller.tt @@ -17,5 +17,39 @@ namespace <#= mvcHost.Namespace #> { return View(); } +<# if (mvcHost.AddActionMethods) { #> + + public ActionResult Details(int id) + { + return View(); + } + + public ActionResult Create() + { + return View(); + } + + [HttpPost] + public ActionResult Create(FormCollection values) + { + return View(); + } + + public ActionResult Edit(int id) + { + return View(); + } + + [HttpPost] + public ActionResult Edit(int id, FormCollection values) + { + return View(); + } + + public ActionResult Delete(int id) + { + return View(); + } +<# } #> } } \ No newline at end of file diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddController/Controller.tt b/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddController/Controller.tt index e451d37bb5..8e60f851ac 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddController/Controller.tt +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddController/Controller.tt @@ -16,5 +16,33 @@ Namespace <#= mvcHost.Namespace #> Function Index() As ActionResult Return View() End Function +<# If mvcHost.AddActionMethods Then #> + + Function Details(ByVal id As Integer) As ActionResult + Return View() + End Function + + Function Create() As ActionResult + Return View() + End Function + + _ + Function Create(ByVal values As FormCollection) As ActionResult + Return View() + End Function + + Function Edit(ByVal id As Integer) As ActionResult + Return View() + End Function + + _ + Function Edit(ByVal id As Integer, ByVal values As FormCollection) As ActionResult + Return View() + End Function + + Function Delete(ByVal id as Integer) As ActionResult + Return View() + End Function +<# End If #> End Class End Namespace diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcControllerToProjectView.xaml b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcControllerToProjectView.xaml index 1fcfbc7c14..bdd8f71601 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcControllerToProjectView.xaml +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcControllerToProjectView.xaml @@ -5,44 +5,60 @@ xmlns:mvc="clr-namespace:ICSharpCode.AspNet.Mvc" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Add Controller" - Style="{x:Static core:GlobalStyles.DialogWindowStyle}" + Style="{x:Static core:GlobalStyles.DialogWindowStyle}" mvc:CloseWindowBehaviour.IsClosed="{Binding IsClosed}" WindowStartupLocation="CenterOwner" FocusManager.FocusedElement="{Binding ElementName=ControllerNameTextBox}" Height="400" - Width="400"> + Width="500">