コード例 #1
0
        public JsonResult Create(string OriginalUrl)
        {
            try
            {
                if (TinyUrlHelper.ValidateUrl(OriginalUrl))
                {
                    var tinyUrl = new TinyUrl()
                    {
                        OriginalUrl = OriginalUrl
                    };

                    TryValidateModel(tinyUrl);
                    if (ModelState.IsValid)
                    {
                        tinyUrl.Id = _service.Save(tinyUrl);

                        var JsonResults = new TinyUrlViewModel(tinyUrl, TinyUrlHelper.GetFullUrl(tinyUrl.Id, Request));
                        return(Json(JsonResults));
                    }
                }

                throw new UriFormatException("URL format is invalid!");
            }

            catch (Exception ex)
            {
                Response.StatusCode = 500;
                return(Json("Exception was thrown - " + ex.Message));
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: denggaopan/denggaopan
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");


            var keys = TinyUrlHelper.GenerateKeys();

            Console.WriteLine(keys);


            var keys2 = TinyUrlHelper.GenerateKeys2();

            Console.WriteLine(keys2);


            var num = 100000;
            var max = 100100;

            for (var i = num; i < max; i++)
            {
                num += TinyUrlHelper.GetRnd();
                var key    = TinyUrlHelper.Convert(num);
                var newKey = TinyUrlHelper.Mixup(key);
                var key2   = TinyUrlHelper.UnMixup(newKey);
                var num2   = TinyUrlHelper.Convert(key2);
                var keymix = TinyUrlHelper.Parse(num);
                var numix  = TinyUrlHelper.Parse(keymix);
                Console.WriteLine($"{num}:{key}:{newKey}:{key2}:{num2}-{keymix}:{numix}");
            }


            //var count = 100;
            //for (var i = 0; i < count; i++)
            //{
            //    var num =(long) DateTime.Now.Subtract(new DateTime(1970,1,1)).TotalMilliseconds;
            //    var key = TinyUrlHelper.Convert(num);
            //    var newKey = TinyUrlHelper.Mixup(key);
            //    var key2 = TinyUrlHelper.UnMixup(newKey);
            //    var num2 = TinyUrlHelper.Convert(key2);
            //    var keymix = TinyUrlHelper.Parse(num);
            //    var numix = TinyUrlHelper.Parse(keymix);
            //    Console.WriteLine($"{num}:{key}:{newKey}:{key2}:{num2}-{keymix}:{numix}");
            //    Thread.Sleep(2000);
            //}


            Console.ReadKey();
        }
コード例 #3
0
 /// <summary>
 /// Gets TinyUrl object by its hash.
 /// </summary>
 /// <param name="encodedHash">encoded hash of the url.</param>
 ///<returns>Returns the tiny url object.</returns>
 public TinyUrl GetByPath(string encodedHash)
 {
     return(_context.TinyUrls.Find(TinyUrlHelper.Decode((encodedHash))));
 }