public async Task <IActionResult> CreateURL([FromBody] URLShort url) { if (await _repo.URLExists(url)) { var savedURL = await _repo.getURL(url.urlCode); var urlReturns = _mapper.Map <URLForReturnDTO>(savedURL); urlReturns.shortUrl = urlReturns.baseUrl + "/" + urlReturns.urlCode; return(Ok(urlReturns)); } if (url.urlCode.Length < 1) { url.urlCode = String.Format("{0:X}", url.originalURl.GetHashCode()); } url.shortUrl = url.baseUrl + "/" + url.urlCode; var userToCreate = _mapper.Map <URLShort>(url); var createdURL = await _repo.CreateURL(userToCreate); var urlToReturn = _mapper.Map <URLForReturnDTO>(createdURL); urlToReturn.shortUrl = urlToReturn.baseUrl + "/" + urlToReturn.urlCode; return(CreatedAtRoute("GetURL", new { Controller = "URL", urlCode = createdURL.urlCode }, urlToReturn)); }
public async Task <URLShort> CreateURL(URLShort url) { await _context.URLShort.AddAsync(url); //adding to database await _context.SaveChangesAsync(); return(url); }
public async Task <IActionResult> checkOriginalURL([FromBody] URLShort req) { var url = await _repo.checkOriginalURL(req.originalURl); if (url?.originalURl.Length > 0) { return(Ok(url)); } return(Ok(false)); }
public async Task <bool> URLExists(URLShort url) { var shortURL = await _context.URLShort.AnyAsync(x => x.urlCode == url.urlCode); //AnyAsync return bool if (shortURL) { return(true); } return(false); }
protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); if (null != filterContext.Result) { return; } if (filterContext.ActionDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true) || filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true)) { return; } #region 权限校验 if (CurrentUser.Name.ToLower() == "admin") { return; } if (!CurrentUser.Enable) { filterContext.Result = Redirect(Url.Action("PowerLimit", "Error", new { Msg = "您的帐户已被禁用,请联系管理员" })); } string URLShortConsole = URLShort.Replace("/Wechat/", "/MP/"); string URLFullConsole = URLFull.Replace("/Wechat/", "/MP/"); List <PowerActionInfo> CurrentPowerActions = PowerActionBLL.GetList(p => (p.Url.Contains(URLFull) || p.Url.Contains(URLFullConsole)) ).ToList(); if (null == CurrentPowerActions || CurrentPowerActions.Count == 0) { filterContext.Result = Redirect(Url.Action("PowerLimit", "Error", new { Msg = "系统不知道有这样的操作权限" })); return; } bool result = CurrentPowerActions.Any(a => PowerActionBLL.PowerCheck(a, CurrentUser)); if (!result) { filterContext.Result = Redirect(Url.Action("PowerLimit", "Error", new { Msg = "权限不足,用户已被禁止访问" })); return; } #endregion }
public HttpResponseMessage Post([FromBody] URLShort url) { try { using (TestesEntities entities = new TestesEntities()) { //Faz uma solicitação ao bitly WebRequest request = WebRequest.Create("http://api.bitly.com/v3/shorten"); XmlDocument xmlDoc = new XmlDocument(); //passa os dados do usuário, a chave da API e a url original byte[] data = Encoding.UTF8.GetBytes(string.Format("login={0}&apiKey={1}&longUrl={2}&format={3}", "adler74", "R_7ea37adab2cf402980a6cbd7a5761229", System.Web.HttpUtility.UrlEncode(url.url), "xml")); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = data.Length; using (Stream ds = request.GetRequestStream()) { ds.Write(data, 0, data.Length); } //lê o arquivo XML obtido do servidor using (WebResponse response = request.GetResponse()) { using (StreamReader sr = new StreamReader(response.GetResponseStream())) { xmlDoc.LoadXml(sr.ReadToEnd()); } } // Extrai as informações do arquivo XML resposta obtido do servidor string CodigoStatus = xmlDoc.GetElementsByTagName("status_code")[0].InnerText; string TextoStatus = xmlDoc.GetElementsByTagName("status_txt")[0].InnerText; string Data = xmlDoc.GetElementsByTagName("data")[0].InnerText; if (CodigoStatus == "200") { string urlEncurtada = xmlDoc.GetElementsByTagName("url")[0].InnerText; string urlOriginal = xmlDoc.GetElementsByTagName("long_url")[0].InnerText; url.url = urlOriginal; url.urlshort = urlEncurtada; entities.URLShorts.Add(url); entities.SaveChanges(); var message = Request.CreateResponse(HttpStatusCode.Created, url); message.Headers.Location = new Uri(Request.RequestUri + url.urlshort.ToString()); return(message); } else { var message = Request.CreateErrorResponse(HttpStatusCode.BadRequest, TextoStatus); return(message); } } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }