public int Insert(URLRequestModel model) { int uid = 0; string slug = UtilityService.MakeSlug(8); DataProvider.ExecuteNonQuery(GetConnection, "dbo.URL_Insert" , inputParamMapper : delegate(SqlParameterCollection paramCollection) { paramCollection.AddWithValue("@URL", model.URL); SqlParameter p = new SqlParameter("@ID", System.Data.SqlDbType.Int); p.Direction = System.Data.ParameterDirection.Output; paramCollection.Add(p); paramCollection.AddWithValue("@Slug", slug); //created by utility service }, returnParameters : delegate(SqlParameterCollection param) { //ID is coming back as a string and its parsing it into an integer. int.TryParse(param["@ID"].Value.ToString(), out uid); //pull out whatever the proc returns as a string and turn it into a number } ); return(uid); }
public HttpResponseMessage InsertURL(URLRequestModel model) { if (!ModelState.IsValid) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } ItemResponse <int> response = new ItemResponse <int>(); response.Item = _URLService.Insert(model); return(Request.CreateResponse(response)); //at this point model will be serialized as JSON }
public IActionResult PostURL([FromBody] URLRequestModel request) { if (ModelState.IsValid) { if (!Captcha.ValidateCaptchaCode(request.CaptchaCode, HttpContext)) { return(View("Error")); } using (LiteDatabase db = new LiteDatabase(Constants.DB_NAME)) { ILiteCollection <NewUrlModel> urls = db.GetCollection <NewUrlModel>(); // Kiểm tra if (!Common.isValidUrl(request.URL)) { Response.StatusCode = 400; return(View("Error")); } NewUrlModel existed; // Kiểm tra trong csdl có bị trùng không if ((existed = urls.FindOne(u => u.URL == request.URL)) != null) { Response.StatusCode = 202; return(Json(new URLReponseModel() { Url = request.URL, Status = "Have already shortened", Token = existed.Token })); } // Nếu không bị trùng thì tạo một url mới } Shortener shortURL = new Shortener(request.URL); Response.StatusCode = 200; return(Json(shortURL)); } else { return(View("Error")); } }