From 21f4021fa4b12df242f47a44a8b886708319f7c5 Mon Sep 17 00:00:00 2001 From: Michael Gordeev Date: Sat, 14 Dec 2019 00:40:34 +0300 Subject: [PATCH] Done resume management pages --- .../Admin/Controllers/ResumeController.cs | 65 +++++++++++++++++++ .../Areas/Admin/Views/Contacts/Index.cshtml | 2 +- .../Areas/Admin/Views/Resume/Index.cshtml | 44 +++++++++++++ MyWebsite/MyWebsite/Models/Resume.cs | 10 ++- MyWebsite/MyWebsite/Views/Resume/Index.cshtml | 1 + 5 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 MyWebsite/MyWebsite/Areas/Admin/Controllers/ResumeController.cs create mode 100644 MyWebsite/MyWebsite/Areas/Admin/Views/Resume/Index.cshtml diff --git a/MyWebsite/MyWebsite/Areas/Admin/Controllers/ResumeController.cs b/MyWebsite/MyWebsite/Areas/Admin/Controllers/ResumeController.cs new file mode 100644 index 0000000..f862112 --- /dev/null +++ b/MyWebsite/MyWebsite/Areas/Admin/Controllers/ResumeController.cs @@ -0,0 +1,65 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using MyWebsite.Models; +using System; + +namespace MyWebsite.Areas.Admin.Controllers +{ + [Authorize] + [Area("Admin")] + public class ResumeController : Controller + { + public ResumeController(DatabaseContext context) => + Startup.Database = context; + + public IActionResult Index() => + View(Startup.Database.Resume); + + [HttpGet] + public IActionResult Edit(string id) => + View(Startup.Database.Resume.Find(id)); + + [HttpPost] + public IActionResult Edit(Resume model) + { + model.LastUpdate = DateTime.Now; + Startup.Database.Resume.Update(model); + Startup.Database.SaveChanges(); + + return RedirectToAction("Index"); + } + + [HttpGet] + public IActionResult Delete(string id) => + View(Startup.Database.Resume.Find(id)); + + [HttpPost] + public IActionResult Delete(Resume model) + { + Startup.Database.Resume.Remove(model); + Startup.Database.SaveChanges(); + + return RedirectToAction("Index"); + } + + [HttpGet] + public IActionResult Create() => + View(); + + [HttpPost] + public IActionResult Create(Resume model) + { + model.LastUpdate = DateTime.Now; + if (!ModelState.IsValid) + { + ModelState.AddModelError("Error", "Invalid data"); + return View(model); + } + + Startup.Database.Resume.Add(model); + Startup.Database.SaveChanges(); + + return RedirectToAction("Index"); + } + } +} \ No newline at end of file diff --git a/MyWebsite/MyWebsite/Areas/Admin/Views/Contacts/Index.cshtml b/MyWebsite/MyWebsite/Areas/Admin/Views/Contacts/Index.cshtml index f55e445..8fd2fdf 100644 --- a/MyWebsite/MyWebsite/Areas/Admin/Views/Contacts/Index.cshtml +++ b/MyWebsite/MyWebsite/Areas/Admin/Views/Contacts/Index.cshtml @@ -12,7 +12,7 @@
- +
diff --git a/MyWebsite/MyWebsite/Areas/Admin/Views/Resume/Index.cshtml b/MyWebsite/MyWebsite/Areas/Admin/Views/Resume/Index.cshtml new file mode 100644 index 0000000..14a70ad --- /dev/null +++ b/MyWebsite/MyWebsite/Areas/Admin/Views/Resume/Index.cshtml @@ -0,0 +1,44 @@ +@model IEnumerable + +@{ + ViewData["Title"] = "Resumes"; +} + +
+

Back to main menu

+

Resumes list

+

+ // + Create New +

+
+ +
+ + + + + + + + + + @foreach (var item in Model) + { + + + + + + } + +
+ @Html.DisplayNameFor(model => model.Language) + + @Html.DisplayNameFor(model => model.LastUpdate) +
@item.Language@item.LastUpdate + Edit | + Delete +
+
+ + \ No newline at end of file diff --git a/MyWebsite/MyWebsite/Models/Resume.cs b/MyWebsite/MyWebsite/Models/Resume.cs index eb9d8f0..39fabfc 100644 --- a/MyWebsite/MyWebsite/Models/Resume.cs +++ b/MyWebsite/MyWebsite/Models/Resume.cs @@ -1,4 +1,6 @@ -using System.ComponentModel.DataAnnotations; +using System; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace MyWebsite.Models @@ -6,10 +8,16 @@ namespace MyWebsite.Models public class Resume { [Key] + [Required] [Column(TypeName = "varchar(10)")] + [DisplayName("Language")] public string Language { get; set; } [Required] [Column(TypeName = "text")] + [DisplayName("Content")] public string Content { get; set; } + [DisplayName("Last chagnge")] + public DateTime LastUpdate { get; set; } + } } \ No newline at end of file diff --git a/MyWebsite/MyWebsite/Views/Resume/Index.cshtml b/MyWebsite/MyWebsite/Views/Resume/Index.cshtml index c80d67a..4d9ab3d 100644 --- a/MyWebsite/MyWebsite/Views/Resume/Index.cshtml +++ b/MyWebsite/MyWebsite/Views/Resume/Index.cshtml @@ -5,6 +5,7 @@

My resume

+

Last update: @Model.LastUpdate

// Download CV (.pdf) 
// Print CV 