public IHttpActionResult Put(int id, Badge award)
 {
     award.Id = id;
     if (!_badgeRepository.Update(award))
     {
         return(NotFound());
     }
     return(Ok());
 }
        public HttpResponseMessage Post()
        {
            var formCollection = HttpContext.Current.Request.Form;
            HttpResponseMessage response;

            if (formCollection["Title"] == null ||
                !HttpContext.Current.Request.Files.AllKeys.Any() ||
                HttpContext.Current.Request.Files["Image"] == null)
            {
                response = Request.CreateResponse(HttpStatusCode.BadRequest);
            }
            else
            {
                var httpPostedFile = HttpContext.Current.Request.Files["Image"];
                var fileName       = Path.GetFileName(httpPostedFile.FileName);
                var award          = new Badge
                {
                    Title       = formCollection["Title"],
                    Description = formCollection["Description"],
                    ImageUrl    = fileName
                };
                _badgeRepository.Add(award);
                if (award.Id == 0)
                {
                    response = Request.CreateResponse(HttpStatusCode.ExpectationFailed, "error saving badge to db");
                }
                else
                {
                    var path =
                        HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["BadgeImageUploadPath"] +
                                                           award.Id);
                    var imagePath = $"{path}/{fileName}";
                    Directory.CreateDirectory(path);
                    httpPostedFile.SaveAs(imagePath);
                    response = Request.CreateResponse(HttpStatusCode.Created, award);
                    var uri = Url.Link("DefaultApi", new { Id = award.Id });
                    response.Headers.Location = new Uri(uri);
                }
            }
            return(response);
        }