private async Task <string> GenerateByRecursiveInsert(string link, int startIndex, int endIndex)
        {
            var linkHash    = HashCalculator.GetMD5Hash(link).Substring(0, 6).Replace('/', '_').Replace('+', '-');
            var existedLink = await LinkRepository.GetLinkInformation(linkHash);

            if (existedLink != null && existedLink.FullLink != link)
            {
                return(await GenerateByRecursiveInsert(link, endIndex + 1, endIndex + 6));
            }
            return(linkHash);
        }
 public HashLinkGenerator(ILinkRepository linkRepository)
 {
     HashCalculator = new HashCalculator();
     LinkRepository = linkRepository;
 }