public IActionResult ShortenURL(Url url) { var authDb = new Authentication(_connectionString); var user = authDb.GetByEmail(User.Identity.Name); var repo = new UrlRepository(_connectionString); if (!repo.DoesOriginalUrlExist(url.UrlOriginal)) { url.UserId = user.Id; url.Views = 0; var foo = true; while (foo) { url.UrlShortened = ShortId.Generate(8); if (!repo.DoesShortenedUrlExist(url.UrlShortened)) { repo.AddUrl(url); foo = false; break; } } } return(Json(url.UrlShortened)); }