public ActionResult <YoutubeTrendingVideo> Post([FromBody] YoutubeTrendingVideo newVideo) { // Add schema header related to accept data type this.HttpContext.Request.Headers.TryGetValue("Accept", out var accept); switch (accept) { case "application/json": Response.Headers.Add("link", JSON_SCHEMA); break; case "application/xml": Response.Headers.Add("link", XML_SCHEMA); break; default: return(BadRequest("Invalid accept header! (application/xml OR application/json)")); } // check ID // error on exist // return new object on success. if (database.Youtube.Any(x => x.VideoId == newVideo.VideoId && x.CountryCode.ToLower() == newVideo.CountryCode.ToLower() && x.TrendingDate == newVideo.TrendingDate)) { return(Conflict("Video with this date/region/id combo already exists!")); } database.Youtube.Add(newVideo); database.SaveChanges(); return(newVideo); }
public ActionResult <YoutubeTrendingVideo> Put([FromBody] YoutubeTrendingVideo updatedVideo) { // Add schema header related to accept data type this.HttpContext.Request.Headers.TryGetValue("Accept", out var accept); switch (accept) { case "application/json": Response.Headers.Add("link", JSON_SCHEMA); break; case "application/xml": Response.Headers.Add("link", XML_SCHEMA); break; default: return(BadRequest("Invalid accept header! (application/xml OR application/json)")); } if (!database.Youtube.Any(x => x.VideoId == updatedVideo.VideoId && x.CountryCode.ToLower() == updatedVideo.CountryCode.ToLower() && x.TrendingDate == updatedVideo.TrendingDate)) { return(Conflict("No such video to update!")); } var oldVideo = database.Youtube.First(x => x.VideoId == updatedVideo.VideoId && x.CountryCode.ToLower() == updatedVideo.CountryCode.ToLower() && x.TrendingDate == updatedVideo.TrendingDate); database.Youtube.Update(updatedVideo); database.SaveChanges(); return(oldVideo); }