public static async Task <UrlResultDto> RunHitUrl([ActivityTrigger] UrlRequestDto requestDto, ILogger log)
        {
            var uriBuilder = new UriBuilder();

            uriBuilder.Scheme = requestDto.Scheme;
            uriBuilder.Path   = requestDto.Path;
            uriBuilder.Host   = requestDto.Host;
            var uri = uriBuilder.ToString();

            log.LogDebug($"Hitting url {uri}");
            var result = await GetSiteDetails.HttpClient.GetAsync(uri);

            if (result.StatusCode != HttpStatusCode.OK)
            {
                log.LogError($"Error hitting {uri}, status code {result.StatusCode}");
            }
            else
            {
                log.LogDebug($"Hit url ok {uri}");
            }

            return(new UrlResultDto()
            {
                StatusCode = result.StatusCode,
                Url = result.RequestMessage.RequestUri.ToString()
            });
        }
예제 #2
0
        public async Task <IActionResult> CreateShortName(string urlName)
        {
            if (string.IsNullOrWhiteSpace(urlName))
            {
                return(Content("Respect yourself pleaase...."));
            }

            var erl = new Uri(urlName);

            Console.WriteLine($"{erl.ToString()}");

            var urlString = new UrlRequestDto();

            urlString.OriginalUrl = erl.OriginalString;

            var urlink = new uLinker()
            {
                id           = Guid.NewGuid(),
                UrlShortName = await _linker.GenerateShortName(),
                OriginalUrl  = urlName
            };

            try
            {
                await _linker.AddUrl(urlink);
            }
            catch (Exception e)
            {
                _logger.LogCritical(e.Message);
            }

            //string baseUrl = string.Format("{0}://{1}", this.Request.Scheme, this.Request.Host.Value.ToString());

            var    baseUrl = $"{this.Request.Scheme}://{this.Request.Host.Value.ToString()}";
            string bUrl    = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.Value.ToString()}";

            //const string domainUrl = @"http://localhost:5001";

            TempData["OriginalUrl"] = urlName;
            TempData["shortUrl"]    = $"https://localhost:5001/{urlink.UrlShortName}";

            var urlVm = new UrlViewModels()
            {
                shortenedUrl = $"{bUrl}/{urlink.UrlShortName}",
                OriginalUrl  = urlName
            };


            return(RedirectToAction("Index", urlVm));
        }