예제 #1
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));
        }
예제 #2
0
        public async Task <IActionResult> UrlRedirect(string shortName)
        {
            if (!string.IsNullOrWhiteSpace(shortName))
            {
                //Error might occur on non instantiated variable e.g UrlGetResponse......
                var UrlToRedirect = await _urlService.GetOriginalUrlByNameAsync(shortName);

                if (UrlToRedirect.IsSuccess == true)
                {
                    return(RedirectPermanent(UrlToRedirect.OriginalUrl));
                }
                else
                {
                    var urlVm = new UrlViewModels {
                        Message = UrlToRedirect.Message
                    };
                    return(RedirectToAction("Index", urlVm));
                }
            }
            return(RedirectToAction("Index"));
        }
예제 #3
0
        public async Task <IActionResult> GenerateShortUrl(string newUrl)
        {
            if (!string.IsNullOrWhiteSpace(newUrl))
            {
                return(Content("The specified Url is wrong"));
            }

            //var response = new UrlAddResponse();
            var urlVm = new UrlViewModels();

            var response = await _urlService.AddUrlAsync(newUrl);

            if (response.IsSuccess == false)
            {
                urlVm.Message = response.Message;
                return(RedirectToAction("Index", urlVm));
            }
            urlVm             = BuildUrlVm(response);
            urlVm.OriginalUrl = newUrl;
            return(RedirectToAction("Index", urlVm));
        }