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); }
public void Delete(UrlPair urlData) { urlDbContext.UrlTable.Attach(urlData); urlDbContext.UrlTable.Remove(urlData); urlDbContext.SaveChanges(); }
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)); } }
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)); } }
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); }
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); }
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); }
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()); }