예제 #1
0
        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"));
        }
예제 #2
0
        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}"));
        }