Esempio n. 1
0
        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
                }
            }
        }
Esempio n. 2
0
        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
                }
            }
        }