コード例 #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 void Delete(UrlPair urlData)
        {
            urlDbContext.UrlTable.Attach(urlData);
            urlDbContext.UrlTable.Remove(urlData);

            urlDbContext.SaveChanges();
        }
コード例 #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 RemoveUrl(string url)
        {
            #region contracts
            if (!Regex.IsMatch(url, ""))
            {
                return(BadRequest("url is not in correct format. "));
            }
            #endregion

            UrlService urlService = new UrlService();
            {
                UrlPair urlPair = urlService.Read(url);

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


                    return(ResponseMessage(response));
                }
                else
                {
                    urlService.Delete(urlPair);
                }

                return(Ok(urlPair));
            }
        }
コード例 #5
0
ファイル: UrlMapper.cs プロジェクト: gourav17/Url-Shortner
        public static Url_Shortner.DataTransferObject.UrlPairDto ToUrlDto(this UrlPair urlPair)
        {
            var config = new MapperConfiguration(cfg => {
                cfg.CreateMap <UrlPair, UrlPairDto>();
            });
            IMapper iMapper = config.CreateMapper();

            var destination = iMapper.Map <UrlPair, UrlPairDto>(urlPair);

            return(destination);
        }
コード例 #6
0
        public UrlPair Read(string shortUrl)
        {
            if (shortUrl == default(string))
            {
                throw new ArgumentNullException(nameof(shortUrl));
            }

            UrlPair urlData = urlDbContext.UrlTable.Where(x => x.shortURL == shortUrl).FirstOrDefault();

            return(urlData);
        }
コード例 #7
0
        public UrlPair ReadbyHash(string longUrl)
        {
            if (longUrl == default(string))
            {
                throw new ArgumentNullException(nameof(longUrl));
            }

            int num = shortHash(longUrl);

            UrlPair urlData = urlDbContext.UrlTable.Where(x => x.urlHash == num).FirstOrDefault();

            return(urlData);
        }
コード例 #8
0
        public UrlPairDto Create(UrlPair urlData)
        {
            #region contracts
            if (urlData == null)
            {
                throw new ArgumentException("urlData cannot be null");
            }

            #endregion

            urlDbContext.UrlTable.Add(urlData);
            urlDbContext.SaveChanges();

            return(urlData.ToUrlDto());
        }