예제 #1
0
        public UrlPairDto makeShort(string longUrl)
        {
            #region contracts
            if (longUrl == null)
            {
                throw new ArgumentException("longUrl cannot be null");
            }

            #endregion

            UrlPair urlData = new UrlPair();


            #region Generate a new code first

            urlData.urlHash  = shortHash(longUrl);
            urlData.shortURL = NewUniqueCode(urlData.urlHash);
            #endregion

            urlData.longURL = longUrl;

            urlData.DateCreate = DateTime.UtcNow;


            UrlPairDto newUrlDto = Create(urlData);
            return(newUrlDto);
        }
예제 #2
0
        public IHttpActionResult Redirectme(string url)
        {
            #region contracts
            if (!Regex.IsMatch(url, ""))
            {
                return(BadRequest("url is not in correct format. "));
            }
            #endregion

            UrlService urlService = new UrlService();
            {
                UrlPairDto urlDataDto = urlService.Read(url).ToUrlDto();


                if (urlDataDto is null)
                {
                    HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.NotFound, "Not Found");


                    return(ResponseMessage(response));
                }
                else
                {
                    return(Redirect(urlDataDto.longURL));
                }
            }
        }
예제 #3
0
        public IHttpActionResult Post(string url)
        {
            #region contracts
            if (!Regex.IsMatch(url, ""))
            {
                return(BadRequest("url is not in correct format. "));
            }
            #endregion


            UrlService urlService = new UrlService();


            {
                UrlPair resultRecord = urlService.ReadbyHash(url);

                HttpResponseMessage response = new HttpResponseMessage();
                if (resultRecord != null)
                {
                    UrlPairDto recordUrl = resultRecord.ToUrlDto();
                    response = Request.CreateResponse(HttpStatusCode.Created, recordUrl);
                    return(ResponseMessage(response));
                }
                UrlPairDto shortUrl = urlService.makeShort(url);
                response = Request.CreateResponse(HttpStatusCode.Created, shortUrl);
                return(ResponseMessage(response));
            }
        }
예제 #4
0
        public IHttpActionResult Get(string url)
        {
            #region contracts
            if (!Regex.IsMatch(url, ""))
            {
                return(BadRequest("url is not in correct format. "));
            }
            #endregion

            UrlService urlService = new UrlService();
            {
                UrlPairDto urlPairDto = urlService.Read(url).ToUrlDto();


                return(Ok(urlPairDto));
            }
        }
예제 #5
0
        public string getLongUrl(string shortUrl)
        {
            #region contracts
            if (!Regex.IsMatch(shortUrl, ""))
            {
                return("url is not in correct format. ");
            }
            #endregion

            UrlService urlService = new UrlService();
            {
                UrlPairDto urlPairDto = urlService.Read(shortUrl).ToUrlDto();


                return(urlPairDto?.longURL);
            }
        }