예제 #1
0
        public async Task <IActionResult> Surl(string fraseB64)
        {
            var b64   = System.Convert.FromBase64String(fraseB64);
            var frase = Util.TextUtilities.Unzip(b64);

            var existente = await StorageClient.GetShortFor(frase);

            if (existente != null)
            {
                return(Json(existente));
            }

            var dtNow    = DateTime.UtcNow;
            var dtOrigin = new DateTime(1986, 8, 1);
            var diff     = dtNow - dtOrigin;
            var diffmsec = BitConverter.GetBytes((uint)Math.Round(diff.TotalMilliseconds)).Reverse().ToArray();

            var sversion = new Base62.Base62Converter().Encode(System.Convert.ToBase64String(diffmsec));

            _memoryCache.Set($"surl_{sversion}", b64, TimeSpan.FromHours(1));

            return(Json(sversion));
        }