Пример #1
0
		public static string CreateShortUrlToken()
		{
			var random = new Random();
			string shortUrl = new string(Enumerable.Repeat(chars, 5).Select(s => s[random.Next(s.Length)]).ToArray());

			// check uniqueness of token
			UrlDal dal = new UrlDal();
			Url url = dal.Get(shortUrl);

			while (url != null)
			{
				shortUrl = CreateShortUrlToken();
			}

			return shortUrl;
		}
Пример #2
0
		public ActionResult Redirect()
		{
			string shortUrl = ControllerContext.RouteData.Values["shorturl"].ToString();
			UrlDal urlDal = new UrlDal();
			Url url = urlDal.Get(shortUrl);
			if (url != null)
			{
				// add url hit
				StatDal statDal = new StatDal();
				statDal.Add(new Stat()
				{
					HitDate = DateTime.Now,
					UrlId = url.Id
				});

				return new RedirectResult(url.LongUrl);
			}

			return new RedirectToRouteResult(new RouteValueDictionary(new
			{
				action = "NotFound",
				controller = "Home"
			}));
		}