コード例 #1
0
        public IHttpActionResult UpdateVsixRating(string vsixId, [FromBody] string ratingString)
        {
            if (!float.TryParse(ratingString, out float rawRating))
            {
                return(BadRequest());
            }

            // Upperbound the rating
            float rating = Math.Min(5, Math.Max(0, rawRating));

            // Record the rating
            if (!FileCounter.SetRating(vsixId, rating, _configuration))
            {
                return(InternalServerError());
            }

            // Trigger a re-creation of the ATOM feed by touching the main file if possible
            var vsixFilePath = FileCounter.GetVsixFileFromId(vsixId, _configuration);

            if (vsixFilePath != null && File.Exists(vsixFilePath))
            {
                File.SetLastWriteTime(vsixFilePath, DateTime.Now);
            }

            // All ok
            return(Ok());
        }
コード例 #2
0
        private Response HandleSetRatingsRequest(dynamic parameters)
        {
            string vsixId = parameters.id;
            float  rawRating;

            if (!float.TryParse(Request.Body.AsString(), out rawRating))
            {
                return new Response {
                           StatusCode = HttpStatusCode.BadRequest
                }
            }
            ;

            // Upperbound the rating
            float rating = Math.Min(5, Math.Max(0, rawRating));

            // Record the rating
            if (!FileCounter.SetRating(vsixId, rating, _configuration))
            {
                return new Response {
                           StatusCode = HttpStatusCode.InternalServerError
                }
            }
            ;

            // Trigger a re-creation of the ATOM feed by touching the main file if possible
            var vsixFilePath = FileCounter.GetVsixFileFromId(vsixId, _configuration);

            if (vsixFilePath != null && File.Exists(vsixFilePath))
            {
                File.SetLastWriteTime(vsixFilePath, DateTime.Now);
            }

            // All ok
            return(new Response {
                StatusCode = HttpStatusCode.OK
            });
        }
    }
}