diff --git a/Apps/Website/Controllers/BaseController.cs b/Apps/Website/Controllers/BaseController.cs
new file mode 100644
index 0000000..1e4025f
--- /dev/null
+++ b/Apps/Website/Controllers/BaseController.cs
@@ -0,0 +1,18 @@
+using Microsoft.AspNetCore.Mvc;
+
+namespace Website
+{
+ ///
+ /// Classe abstraite de base pour tous nos controlleurs permettant d'exposer
+ /// 2 - 3 méthodes helpers.
+ ///
+ public abstract class BaseController : Controller
+ {
+ public const string FlashMessageKey = "FlashMessage";
+
+ protected void Success(string message)
+ {
+ TempData[FlashMessageKey] = message;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Apps/Website/Controllers/LinksController.cs b/Apps/Website/Controllers/LinksController.cs
index 97a7fd3..75ed760 100644
--- a/Apps/Website/Controllers/LinksController.cs
+++ b/Apps/Website/Controllers/LinksController.cs
@@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Mvc;
namespace Website
{
- public class LinksController : Controller
+ public class LinksController : BaseController
{
private readonly LinkService _service;
@@ -43,6 +43,8 @@ namespace Website
_service.PublishLink(cmd);
+ Success("Your link was posted!");
+
return RedirectToAction(nameof(Index));
}
}
diff --git a/Apps/Website/Views/Links/Index.cshtml b/Apps/Website/Views/Links/Index.cshtml
index eb10f0c..cd6ef60 100644
--- a/Apps/Website/Views/Links/Index.cshtml
+++ b/Apps/Website/Views/Links/Index.cshtml
@@ -11,7 +11,9 @@
@foreach (var link in Model)
{
- - @link.Url - @link.CreatedAt - 🗨 @link.CommentsCount - Show
+ -
+
+
}
}
\ No newline at end of file
diff --git a/Apps/Website/Views/Links/Show.cshtml b/Apps/Website/Views/Links/Show.cshtml
index d9d491a..5ed89f9 100644
--- a/Apps/Website/Views/Links/Show.cshtml
+++ b/Apps/Website/Views/Links/Show.cshtml
@@ -4,3 +4,5 @@
}
Viewing link @Model.Url
+
+@* *@
\ No newline at end of file
diff --git a/Apps/Website/Views/Shared/_FlashMessage.cshtml b/Apps/Website/Views/Shared/_FlashMessage.cshtml
new file mode 100644
index 0000000..ea20ac8
--- /dev/null
+++ b/Apps/Website/Views/Shared/_FlashMessage.cshtml
@@ -0,0 +1,8 @@
+@{
+ var text = (string)TempData[BaseController.FlashMessageKey];
+}
+
+@if(!string.IsNullOrWhiteSpace(text))
+{
+ @text
+}
\ No newline at end of file
diff --git a/Apps/Website/Views/Shared/_Layout.cshtml b/Apps/Website/Views/Shared/_Layout.cshtml
index d69af11..b87ce1b 100644
--- a/Apps/Website/Views/Shared/_Layout.cshtml
+++ b/Apps/Website/Views/Shared/_Layout.cshtml
@@ -31,6 +31,8 @@
diff --git a/Apps/Website/Views/Shared/_LinkItem.cshtml b/Apps/Website/Views/Shared/_LinkItem.cshtml
new file mode 100644
index 0000000..c4b25b2
--- /dev/null
+++ b/Apps/Website/Views/Shared/_LinkItem.cshtml
@@ -0,0 +1,11 @@
+@model Application.LinkDTO
+
+
+ @Model.Url
+
+ Show
+ - Published at @Model.CreatedAt.ToLongDateString()
+ - 🗨 @Model.CommentsCount
+ - 👍 @Model.UpvotesCount / 👎 @Model.DownvotesCount
+
+
\ No newline at end of file