diff --git a/Lesson03/StartOfLesson/ToDo/Controllers/ToDoController.cs b/Lesson03/StartOfLesson/ToDo/Controllers/ToDoController.cs index 5a36be4..6918058 100644 --- a/Lesson03/StartOfLesson/ToDo/Controllers/ToDoController.cs +++ b/Lesson03/StartOfLesson/ToDo/Controllers/ToDoController.cs @@ -7,10 +7,14 @@ namespace ToDoApp.Controllers { public class ToDoController : Controller { + + // GET: ToDo public ActionResult Index() { + + return View(Repository.ToDos); } diff --git a/Lesson03/StartOfLesson/ToDo/Middleware/LoggerMiddleware.cs b/Lesson03/StartOfLesson/ToDo/Middleware/LoggerMiddleware.cs new file mode 100644 index 0000000..d1d2c0a --- /dev/null +++ b/Lesson03/StartOfLesson/ToDo/Middleware/LoggerMiddleware.cs @@ -0,0 +1,55 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Logging; +using System; +using System.Web; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace ToDoApp.Middleware +{ + public class LoggerMiddleware : IMiddleware + { + private readonly ILogger _logger; + public LoggerMiddleware(ILogger logger) + { + _logger = logger; + } + + public async Task InvokeAsync(HttpContext context, RequestDelegate next) + { + + string path = context.Request.Path; + String[] pathParts = path.Split("/"); + string controller = ""; + string action = ""; + string id = ""; + + if (pathParts.Length == 4) + { + controller = pathParts[1]; + action = pathParts[2]; + id = pathParts[3]; + } + + //should only happen when ToDoController has been called + if (controller == "ToDo") + { + //change the message + //show the controller name, action, and id if available + _logger.LogError("controller = " + controller + ". action = " + action + ". id = " + id); + } + + + + + + + await next(context); + } + + + + + } +} \ No newline at end of file diff --git a/Lesson03/StartOfLesson/ToDo/Program.cs b/Lesson03/StartOfLesson/ToDo/Program.cs index 36679b8..fc23024 100644 --- a/Lesson03/StartOfLesson/ToDo/Program.cs +++ b/Lesson03/StartOfLesson/ToDo/Program.cs @@ -1,5 +1,6 @@ using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Logging; namespace ToDoApp { diff --git a/Lesson03/StartOfLesson/ToDo/Startup.cs b/Lesson03/StartOfLesson/ToDo/Startup.cs index 40c75b2..8f30690 100644 --- a/Lesson03/StartOfLesson/ToDo/Startup.cs +++ b/Lesson03/StartOfLesson/ToDo/Startup.cs @@ -4,6 +4,8 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using ToDoApp.Middleware; namespace ToDoApp { @@ -26,7 +28,7 @@ public void ConfigureServices(IServiceCollection services) options.MinimumSameSitePolicy = SameSiteMode.None; }); - + services.AddTransient(); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); } @@ -45,6 +47,8 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env) app.UseStaticFiles(); app.UseCookiePolicy(); + app.UseMiddleware(); + app.UseMvc(routes => { routes.MapRoute(