From 88dd2a38897e61d418b53fa68abd512026ac8b4d Mon Sep 17 00:00:00 2001 From: Michael Gordeev Date: Sat, 13 Feb 2021 23:34:32 +0300 Subject: [PATCH] Updated url shortener logic --- .../Admin/Controllers/ShortenerController.cs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/MyWebsite/MyWebsite/Areas/Admin/Controllers/ShortenerController.cs b/MyWebsite/MyWebsite/Areas/Admin/Controllers/ShortenerController.cs index a4ab11f..d3958f9 100644 --- a/MyWebsite/MyWebsite/Areas/Admin/Controllers/ShortenerController.cs +++ b/MyWebsite/MyWebsite/Areas/Admin/Controllers/ShortenerController.cs @@ -24,9 +24,9 @@ namespace MyWebsite.Areas.Admin.Controllers [HttpGet] public IActionResult Create(string url, string id = "") { - if (!string.IsNullOrWhiteSpace(id) && Database.ShortLinks.Find(id) != null) + if (string.IsNullOrWhiteSpace(url)) { - ModelState.AddModelError("Duplicate", "Link with such ID already exists"); + ModelState.AddModelError(nameof(ArgumentNullException), "Provided url is empty or invalid"); return View(ViewPath, Database.ShortLinks.ToList()); } @@ -36,11 +36,15 @@ namespace MyWebsite.Areas.Admin.Controllers return View(ViewPath, Database.ShortLinks.ToList()); } - Database.ShortLinks.Add(new ShortLinkModel - { - Uri = uri, - LinkId = string.IsNullOrWhiteSpace(id) ? RandomString(6) : id - }); + if (!string.IsNullOrWhiteSpace(id) && Database.ShortLinks.Find(id) is ShortLinkModel entry) + entry.Uri = uri; + else + Database.ShortLinks.Add(new ShortLinkModel + { + Uri = uri, + LinkId = string.IsNullOrWhiteSpace(id) ? RandomString(6) : id + }); + Database.SaveChanges(); return RedirectToAction("Index"); }