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); }