Esempio n. 1
0
        public async Task <string> CreateShortenerAsync(string sourceLink, string appUrl)
        {
            if (!LinkHelper.IsLinkValid(sourceLink) || sourceLink == null)
            {
                throw new BusinessRuleValidationException("Неправильный URL.");
            }

            string backHalf;

            do
            {
                backHalf = LinkHelper.GenerateBackHalf(sourceLink);
            }while ((await _shortenerRepository.GetByBackHalf(backHalf)) != null);

            var shortener = Shortener.Create(sourceLink, appUrl, backHalf);

            await _shortenerRepository
            .CreateShortenerAsync(shortener);

            return(shortener.ShortLink);
        }