public async Task <IActionResult> RedirectTo(string key) { var id = ShortenerCore.Decode(key); var longUrl = await dbUrlContext.LongUrls.FindAsync(id); return(longUrl != null ? new RedirectResult(longUrl.Url) : (IActionResult)RedirectToAction("Index")); }
public async Task <IActionResult> Index(UrlShortener model) { var longUrl = new LongUrl { Url = model.RawUrl, Date = DateTime.UtcNow, AltId = Guid.NewGuid().ToString() }; await dbUrlContext.AddAsync(longUrl); await dbUrlContext.SaveChangesAsync(); var code = ShortenerCore.Encode(longUrl.Id); return(PartialView("_ShortUrl", $"{settings.Url}/s/{code}")); }