Beispiel #1
0
        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);
        }
Beispiel #2
0
        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"));
     }
 }