コード例 #1
0
        /// <inheritdoc/>
        public async Task <Url> ShortenUrl(string longUrl, long?expireDate = null)
        {
            var isLongUrlValid = longUrl.IsValidUrl();

            if (!isLongUrlValid)
            {
                throw new InvalidUrlException(ExceptionMessagesConstants.InvalidUrlExceptionMessage);
            }

            var shortUrl = await this.GenerateShortUrl();

            var url = new Url
            {
                LongUrl  = longUrl,
                ShortUrl = shortUrl
            };

            if (expireDate.HasValue && expireDate.Value > 0)
            {
                url.ExpirationDate = UrlHelpers.ConvertUnixTimeToDateTime(expireDate.Value);
            }

            await this.urlRepository.AddAsync(url);

            return(url);
        }
コード例 #2
0
        public void ConvertUnixTimeToDateTime_ShouldConvertTimeCorrectly()
        {
            // 03/08/2020 @ 6:23:30pm - 1583691810
            var expected = new DateTime(2020, 03, 08, 18, 23, 30, DateTimeKind.Utc);
            var unixTime = 1583691810;

            var actual = UrlHelpers.ConvertUnixTimeToDateTime(unixTime);

            Assert.Equal(expected, actual);
        }