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); }
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(); }