示例#1
0
        public async Task <string> GetOriginalUrl(string shortUrl)
        {
            int id = 0;

            char[] shortURLArr = shortUrl.ToCharArray();

            // conversion from short url to id. this id will be used to retrieve the original url from database.
            for (int i = 0; i < shortURLArr.Length; i++)
            {
                if (shortURLArr[i] >= 'a' && shortURLArr[i] <= 'z')
                {
                    id = id * 62 + shortURLArr[i] - 'a';
                }
                else if (shortURLArr[i] >= 'A' && shortURLArr[i] <= 'Z')
                {
                    id = id * 62 + shortURLArr[i] - 'A' + 26;
                }
                else if (shortURLArr[i] >= '0' && shortURLArr[i] <= '9')
                {
                    id = id * 62 + shortURLArr[i] - '0' + 52;
                }
            }

            UrlShorteningDetails urlShorteningDetails = await ShorteningRepository.GetLongUrlById(id);

            return(urlShorteningDetails == null ? "Not Found" : urlShorteningDetails.LongUrl);
        }
示例#2
0
        public async Task <string> GetShortUrl(string longUrl)
        {
            try
            {
                UrlShorteningDetails urlShorteningDetails = await ShorteningRepository.GetShortUrlBylongUrl(longUrl.Trim());

                if (urlShorteningDetails != null)
                {
                    return(Map62Url(urlShorteningDetails.Id));
                }
                else
                {
                    //Insert Long URL in DB
                    urlShorteningDetails = new UrlShorteningDetails()
                    {
                        LongUrl     = longUrl,
                        DateCreated = DateTime.Now.ToLocalTime(),
                        DateExpiry  = DateTime.Now.Date.AddDays(30),
                        Active      = "Y"
                    };

                    ShorteningRepository.Save(urlShorteningDetails);
                    return(urlShorteningDetails.Id > 0 ? Map62Url(urlShorteningDetails.Id) : throw new InvalidOperationException());
                }
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
 public void Save(UrlShorteningDetails urlShorteningDetails)
 {
     shortnerDbContext.UrlShorteningDetails.Add(urlShorteningDetails);
     shortnerDbContext.SaveChanges();
 }