public ActionResult RedirectToLong(string shortURL) { db.Configuration.ProxyCreationEnabled = false; if (string.IsNullOrEmpty(shortURL)) return RedirectToAction("NotFound", "Home"); else { URL url = db.URLs.Where(u => u.ShortUrl == shortURL).FirstOrDefault(); if (url == null) return RedirectToAction("NotFound", "Home"); else { #region Statistics collected for this URL TinyURLService.Models.UrlStats stats = new TinyURLService.Models.UrlStats(Request); stats.UrlId = url.UrlId; // relation TinyURLService.UrlStat us = new UrlStat(); us.UrlId = stats.UrlId; try { db.UrlStats.Add(us); db.SaveChanges(); } catch (Exception exc) { throw exc; } #endregion url.Hits++; // increment visits db.SaveChanges(); Response.StatusCode = 302; return Redirect(url.LongUrl); // redirects to the long URL } } }
public ActionResult RedirectToLong(string shortURL) { if (string.IsNullOrEmpty(shortURL)) { return(RedirectToAction("NotFound", "Home")); } else { URL url = db.Urls.Where(u => u.ShortUrl == shortURL).FirstOrDefault(); if (url == null) { return(RedirectToAction("NotFound", "Home")); } else { #region Statistics collected for this URL UrlStat stats = new UrlStat(Request); stats.UrlId = url.UrlId; try { db.UrlStats.Add(stats); db.SaveChanges(); } catch (Exception exc) { log.Error(exc); } #endregion url.Hits++; // Adiciona visita db.SaveChanges(); Response.StatusCode = 302; return(Redirect(url.LongUrl)); // Redireciona URL } } }