diff --git a/MyWebsite/MyWebsite/Areas/Admin/Controllers/BadgesController.cs b/MyWebsite/MyWebsite/Areas/Admin/Controllers/BadgesController.cs index f0dd133..3a6d099 100644 --- a/MyWebsite/MyWebsite/Areas/Admin/Controllers/BadgesController.cs +++ b/MyWebsite/MyWebsite/Areas/Admin/Controllers/BadgesController.cs @@ -21,8 +21,22 @@ namespace MyWebsite.Areas.Admin.Controllers View(Startup.Database.Badges.Find(id)); [HttpPost] - public IActionResult Edit(Badge model) + public IActionResult Edit(Badge model, IFormFile file = null) { + if(file != null) + { + System.Drawing.Image image = System.Drawing.Image.FromStream(file.OpenReadStream()); + if (image.Width != 64 || image.Height != 64 || !file.FileName.ToLower().EndsWith(".png")) + { + ViewData["UploadException"] = "error"; + return View(Startup.Database.Badges.Find(model.Name)); + } + using (var stream = System.IO.File.Create(Directory.GetCurrentDirectory() + "/wwwroot/images/Badges/" + file.FileName)) + file.CopyTo(stream); + + return Redirect(Request.Path.Value); + } + Startup.Database.Badges.Update(model); Startup.Database.SaveChanges(); @@ -47,8 +61,22 @@ namespace MyWebsite.Areas.Admin.Controllers View(); [HttpPost] - public IActionResult Create(Badge model) + public IActionResult Create(Badge model, IFormFile file = null) { + if (file != null) + { + System.Drawing.Image image = System.Drawing.Image.FromStream(file.OpenReadStream()); + if (image.Width != 64 || image.Height != 64 || !file.FileName.ToLower().EndsWith(".png")) + { + ViewData["UploadException"] = "error"; + return View(Startup.Database.Badges.Find(model.Name)); + } + using (var stream = System.IO.File.Create(Directory.GetCurrentDirectory() + "/wwwroot/images/Badges/" + file.FileName)) + file.CopyTo(stream); + + return Redirect(Request.Path.Value); + } + if (!ModelState.IsValid) { ModelState.AddModelError("Error", "Invalid data"); diff --git a/MyWebsite/MyWebsite/Areas/Admin/Views/Badges/Create.cshtml b/MyWebsite/MyWebsite/Areas/Admin/Views/Badges/Create.cshtml index 6a732e7..68aa1bb 100644 --- a/MyWebsite/MyWebsite/Areas/Admin/Views/Badges/Create.cshtml +++ b/MyWebsite/MyWebsite/Areas/Admin/Views/Badges/Create.cshtml @@ -45,6 +45,13 @@ +