From ab8481ebfcd13f4f7715b84689d12f771c289312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 11 Dec 2016 17:01:29 +0300 Subject: [PATCH] Made MVC application running. --- Volo.Abp.sln | 7 +++ src/AbpDesk/AbpDesk.UI/AppModule.cs | 24 ++++++--- .../AbpDesk.UI/Controllers/HomeController.cs | 13 +++++ .../Controllers/TicketsController.cs | 29 +++++++++++ .../Models/Tickets/IndexViewModel.cs | 10 ++++ .../AbpDesk.UI/Properties/launchSettings.json | 2 +- .../AbpDesk.UI/Views/Tickets/Index.cshtml | 15 ++++++ src/AbpDesk/AbpDesk.UI/compilerconfig.json | 6 +++ .../AbpDesk.UI/compilerconfig.json.defaults | 49 +++++++++++++++++++ src/AbpDesk/AbpDesk.UI/project.json | 12 ++++- .../AbpDesk.UI/wwwroot/global-styles.css | 5 ++ .../AbpDesk.UI/wwwroot/global-styles.min.css | 1 + .../AbpDesk.UI/wwwroot/global-styles.scss | 8 +++ .../Properties/AssemblyInfo.cs | 19 +++++++ .../Volo.Abp.AspNetCore.Mvc.xproj | 20 ++++++++ .../Abp/AspNetCore/Mvc/AbpAspNetCoreModule.cs | 16 ++++++ .../Volo/Abp/AspNetCore/Mvc/AbpController.cs | 9 ++++ src/Volo.Abp.AspNetCore.Mvc/project.json | 15 ++++++ 18 files changed, 251 insertions(+), 9 deletions(-) create mode 100644 src/AbpDesk/AbpDesk.UI/Controllers/HomeController.cs create mode 100644 src/AbpDesk/AbpDesk.UI/Controllers/TicketsController.cs create mode 100644 src/AbpDesk/AbpDesk.UI/Models/Tickets/IndexViewModel.cs create mode 100644 src/AbpDesk/AbpDesk.UI/Views/Tickets/Index.cshtml create mode 100644 src/AbpDesk/AbpDesk.UI/compilerconfig.json create mode 100644 src/AbpDesk/AbpDesk.UI/compilerconfig.json.defaults create mode 100644 src/AbpDesk/AbpDesk.UI/wwwroot/global-styles.css create mode 100644 src/AbpDesk/AbpDesk.UI/wwwroot/global-styles.min.css create mode 100644 src/AbpDesk/AbpDesk.UI/wwwroot/global-styles.scss create mode 100644 src/Volo.Abp.AspNetCore.Mvc/Properties/AssemblyInfo.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.xproj create mode 100644 src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreModule.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc/project.json diff --git a/Volo.Abp.sln b/Volo.Abp.sln index ca06443640..88b39bbf19 100644 --- a/Volo.Abp.sln +++ b/Volo.Abp.sln @@ -64,6 +64,8 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "AbpDesk.EntityFrameworkCore EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "AbpDesk.ConsoleDemo", "src\AbpDesk\AbpDesk.ConsoleDemo\AbpDesk.ConsoleDemo.xproj", "{1A1575D7-E57E-4A40-8113-FD01BB1753D5}" EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Volo.Abp.AspNetCore.Mvc", "src\Volo.Abp.AspNetCore.Mvc\Volo.Abp.AspNetCore.Mvc.xproj", "{3FB342CA-23B6-4795-91EF-C664527C07B7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -154,6 +156,10 @@ Global {1A1575D7-E57E-4A40-8113-FD01BB1753D5}.Debug|Any CPU.Build.0 = Debug|Any CPU {1A1575D7-E57E-4A40-8113-FD01BB1753D5}.Release|Any CPU.ActiveCfg = Release|Any CPU {1A1575D7-E57E-4A40-8113-FD01BB1753D5}.Release|Any CPU.Build.0 = Release|Any CPU + {3FB342CA-23B6-4795-91EF-C664527C07B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3FB342CA-23B6-4795-91EF-C664527C07B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3FB342CA-23B6-4795-91EF-C664527C07B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3FB342CA-23B6-4795-91EF-C664527C07B7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -185,5 +191,6 @@ Global {B6E622CE-0AEE-45DA-81AB-C244196CB583} = {1187F469-0063-4065-9419-A1D956C80145} {35624E7C-6501-4B42-9AA7-70555666A8B3} = {1187F469-0063-4065-9419-A1D956C80145} {1A1575D7-E57E-4A40-8113-FD01BB1753D5} = {1187F469-0063-4065-9419-A1D956C80145} + {3FB342CA-23B6-4795-91EF-C664527C07B7} = {4C753F64-0C93-4D65-96C2-A40893AFC1E8} EndGlobalSection EndGlobal diff --git a/src/AbpDesk/AbpDesk.UI/AppModule.cs b/src/AbpDesk/AbpDesk.UI/AppModule.cs index 7c8479165b..bae32c2290 100644 --- a/src/AbpDesk/AbpDesk.UI/AppModule.cs +++ b/src/AbpDesk/AbpDesk.UI/AppModule.cs @@ -1,16 +1,24 @@ -using Microsoft.AspNetCore.Builder; +using AbpDesk.EntityFrameworkCore; +using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using Volo.Abp.AspNetCore; using Volo.Abp.AspNetCore.Modularity; +using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.Modularity; namespace AbpDesk { - [DependsOn(typeof(AbpAspNetCoreModule))] + //TODO: Rename project to AbpDesk.Web.Mvc + + [DependsOn(typeof(AbpAspNetCoreMvcModule), typeof(AbpDeskApplicationModule), typeof(AbpDeskEntityFrameworkCoreModule))] public class AppModule : AbpModule { + public override void ConfigureServices(IServiceCollection services) + { + services.AddMvc(); + } + public override void OnApplicationInitialization(ApplicationInitializationContext context) { var app = context.GetApplicationBuilder(); @@ -22,9 +30,13 @@ namespace AbpDesk app.UseDeveloperExceptionPage(); } - app.Run(async (ctx) => + app.UseStaticFiles(); + + app.UseMvc(routes => { - await ctx.Response.WriteAsync("Hello World 3!"); + routes.MapRoute( + name: "default", + template: "{controller=Home}/{action=Index}/{id?}"); }); } } diff --git a/src/AbpDesk/AbpDesk.UI/Controllers/HomeController.cs b/src/AbpDesk/AbpDesk.UI/Controllers/HomeController.cs new file mode 100644 index 0000000000..8a9cd8dfb4 --- /dev/null +++ b/src/AbpDesk/AbpDesk.UI/Controllers/HomeController.cs @@ -0,0 +1,13 @@ +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc; + +namespace AbpDesk.Controllers +{ + public class HomeController : AbpController + { + public IActionResult Index() + { + return RedirectToAction("Index", "Tickets"); + } + } +} diff --git a/src/AbpDesk/AbpDesk.UI/Controllers/TicketsController.cs b/src/AbpDesk/AbpDesk.UI/Controllers/TicketsController.cs new file mode 100644 index 0000000000..613b9e5355 --- /dev/null +++ b/src/AbpDesk/AbpDesk.UI/Controllers/TicketsController.cs @@ -0,0 +1,29 @@ +using AbpDesk.Models.Tickets; +using AbpDesk.Tickets; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc; + +namespace AbpDesk.Controllers +{ + public class TicketsController : AbpController + { + private readonly ITicketAppService _ticketAppService; + + public TicketsController(ITicketAppService ticketAppService) + { + _ticketAppService = ticketAppService; + } + + public IActionResult Index() + { + var result = _ticketAppService.GetAll(); + + var model = new IndexViewModel + { + Tickets = result.Items + }; + + return View(model); + } + } +} diff --git a/src/AbpDesk/AbpDesk.UI/Models/Tickets/IndexViewModel.cs b/src/AbpDesk/AbpDesk.UI/Models/Tickets/IndexViewModel.cs new file mode 100644 index 0000000000..f5df26bce7 --- /dev/null +++ b/src/AbpDesk/AbpDesk.UI/Models/Tickets/IndexViewModel.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; +using AbpDesk.Tickets.Dtos; + +namespace AbpDesk.Models.Tickets +{ + public class IndexViewModel + { + public IReadOnlyList Tickets { get; set; } + } +} diff --git a/src/AbpDesk/AbpDesk.UI/Properties/launchSettings.json b/src/AbpDesk/AbpDesk.UI/Properties/launchSettings.json index 6f0054095c..2068644ea0 100644 --- a/src/AbpDesk/AbpDesk.UI/Properties/launchSettings.json +++ b/src/AbpDesk/AbpDesk.UI/Properties/launchSettings.json @@ -15,7 +15,7 @@ "ASPNETCORE_ENVIRONMENT": "Development" } }, - "AspNetCoreDemo": { + "AbpDesk.UI": { "commandName": "Project", "launchBrowser": true, "launchUrl": "http://localhost:5000", diff --git a/src/AbpDesk/AbpDesk.UI/Views/Tickets/Index.cshtml b/src/AbpDesk/AbpDesk.UI/Views/Tickets/Index.cshtml new file mode 100644 index 0000000000..80fea77829 --- /dev/null +++ b/src/AbpDesk/AbpDesk.UI/Views/Tickets/Index.cshtml @@ -0,0 +1,15 @@ +@model AbpDesk.Models.Tickets.IndexViewModel + + + +

Tickets

+ + \ No newline at end of file diff --git a/src/AbpDesk/AbpDesk.UI/compilerconfig.json b/src/AbpDesk/AbpDesk.UI/compilerconfig.json new file mode 100644 index 0000000000..9fe9dfdc20 --- /dev/null +++ b/src/AbpDesk/AbpDesk.UI/compilerconfig.json @@ -0,0 +1,6 @@ +[ + { + "outputFile": "wwwroot/global-styles.css", + "inputFile": "wwwroot/global-styles.scss" + } +] \ No newline at end of file diff --git a/src/AbpDesk/AbpDesk.UI/compilerconfig.json.defaults b/src/AbpDesk/AbpDesk.UI/compilerconfig.json.defaults new file mode 100644 index 0000000000..c75eb7d519 --- /dev/null +++ b/src/AbpDesk/AbpDesk.UI/compilerconfig.json.defaults @@ -0,0 +1,49 @@ +{ + "compilers": { + "less": { + "autoPrefix": "", + "cssComb": "none", + "ieCompat": true, + "strictMath": false, + "strictUnits": false, + "relativeUrls": true, + "rootPath": "", + "sourceMapRoot": "", + "sourceMapBasePath": "", + "sourceMap": false + }, + "sass": { + "includePath": "", + "indentType": "space", + "indentWidth": 2, + "outputStyle": "nested", + "Precision": 5, + "relativeUrls": true, + "sourceMapRoot": "", + "sourceMap": false + }, + "stylus": { + "sourceMap": false + }, + "babel": { + "sourceMap": false + }, + "coffeescript": { + "bare": false, + "runtimeMode": "node", + "sourceMap": false + } + }, + "minifiers": { + "css": { + "enabled": true, + "termSemicolons": true, + "gzip": false + }, + "javascript": { + "enabled": true, + "termSemicolons": true, + "gzip": false + } + } +} \ No newline at end of file diff --git a/src/AbpDesk/AbpDesk.UI/project.json b/src/AbpDesk/AbpDesk.UI/project.json index 8691f3cbfc..9b1c6a996c 100644 --- a/src/AbpDesk/AbpDesk.UI/project.json +++ b/src/AbpDesk/AbpDesk.UI/project.json @@ -8,19 +8,27 @@ "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", "Microsoft.Extensions.Logging.Console": "1.1.0", - "Volo.Abp.AspNetCore": "1.0.0-*", + "Microsoft.AspNetCore.StaticFiles": "1.1.0", + "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", + "Microsoft.Extensions.Configuration.Json": "1.1.0", "AbpDesk.Application.Contracts": "1.0.0-*", "Microsoft.EntityFrameworkCore.Tools": { "type": "build", "version": "1.1.0-preview4-final" }, + "Microsoft.AspNetCore.Razor.Tools": { + "type": "build", + "version": "1.1.0-preview4-final" + }, + "Volo.Abp.AspNetCore.Mvc": "1.0.0-*", "AbpDesk.EntityFrameworkCore": "1.0.0-*", "AbpDesk.Application": "1.0.0-*" }, "tools": { "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final", - "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final" + "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final", + "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview4-final" }, "frameworks": { diff --git a/src/AbpDesk/AbpDesk.UI/wwwroot/global-styles.css b/src/AbpDesk/AbpDesk.UI/wwwroot/global-styles.css new file mode 100644 index 0000000000..9b8b2601c3 --- /dev/null +++ b/src/AbpDesk/AbpDesk.UI/wwwroot/global-styles.css @@ -0,0 +1,5 @@ +ul.ticket-list { + list-style: none; } + ul.ticket-list li { + border-bottom: 1px solid #d0d0d0; } + diff --git a/src/AbpDesk/AbpDesk.UI/wwwroot/global-styles.min.css b/src/AbpDesk/AbpDesk.UI/wwwroot/global-styles.min.css new file mode 100644 index 0000000000..e1372bca1c --- /dev/null +++ b/src/AbpDesk/AbpDesk.UI/wwwroot/global-styles.min.css @@ -0,0 +1 @@ +ul.ticket-list{list-style:none;}ul.ticket-list li{border-bottom:1px solid #d0d0d0;} \ No newline at end of file diff --git a/src/AbpDesk/AbpDesk.UI/wwwroot/global-styles.scss b/src/AbpDesk/AbpDesk.UI/wwwroot/global-styles.scss new file mode 100644 index 0000000000..75fc1c9b23 --- /dev/null +++ b/src/AbpDesk/AbpDesk.UI/wwwroot/global-styles.scss @@ -0,0 +1,8 @@ +ul.ticket-list { + + list-style: none; + + li { + border-bottom: 1px solid #d0d0d0; + } +} diff --git a/src/Volo.Abp.AspNetCore.Mvc/Properties/AssemblyInfo.cs b/src/Volo.Abp.AspNetCore.Mvc/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..f815135f18 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc/Properties/AssemblyInfo.cs @@ -0,0 +1,19 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Volo.Abp.AspNetCore.Mvc")] +[assembly: AssemblyTrademark("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("3fb342ca-23b6-4795-91ef-c664527c07b7")] diff --git a/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.xproj b/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.xproj new file mode 100644 index 0000000000..0751f3be58 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.xproj @@ -0,0 +1,20 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + 3fb342ca-23b6-4795-91ef-c664527c07b7 + + + .\obj + .\bin\ + v4.6.1 + + + 2.0 + + + \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreModule.cs b/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreModule.cs new file mode 100644 index 0000000000..7777104d83 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreModule.cs @@ -0,0 +1,16 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Modularity; + +namespace Volo.Abp.AspNetCore.Mvc +{ + [DependsOn(typeof(AbpAspNetCoreModule))] + public class AbpAspNetCoreMvcModule : IAbpModule + { + public void ConfigureServices(IServiceCollection services) + { + services.AddObjectAccessor(); + services.AddAssemblyOf(); + } + } +} diff --git a/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs b/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs new file mode 100644 index 0000000000..463a424f36 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpController.cs @@ -0,0 +1,9 @@ +using Microsoft.AspNetCore.Mvc; + +namespace Volo.Abp.AspNetCore.Mvc +{ + public abstract class AbpController : Controller + { + + } +} diff --git a/src/Volo.Abp.AspNetCore.Mvc/project.json b/src/Volo.Abp.AspNetCore.Mvc/project.json new file mode 100644 index 0000000000..c0118a66c3 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc/project.json @@ -0,0 +1,15 @@ +{ + "version": "1.0.0-*", + + "dependencies": { + "NETStandard.Library": "1.6.1", + "Volo.Abp.AspNetCore": "1.0.0-*", + "Microsoft.AspNetCore.Mvc": "1.1.0" + }, + + "frameworks": { + "netstandard1.6": { + "imports": "dnxcore50" + } + } +}