public IHttpActionResult Create(Dvd dvd) { var repo = DvdRepoFactory.Create(); //Validate here //All items that DVDs can be searched by must be valid (Title,Rating,Director,ReleaseYear) //Empty title if (dvd.Title == " " || string.IsNullOrEmpty(dvd.Title)) { var resp = new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(string.Format("Must enter a Title")), ReasonPhrase = "DVD not created" }; throw new HttpResponseException(resp); } //Empty or invalid release year if (dvd.ReleaseYear < 1000 || dvd.ReleaseYear > 9999) { var resp = new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(string.Format("Release year must be only 4 digits (ex. 1997)")), ReasonPhrase = "DVD not created" }; throw new HttpResponseException(resp); } //Empty director name if (dvd.Director == " " || string.IsNullOrEmpty(dvd.Director)) { var resp = new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(string.Format("Must enter a Director name")), ReasonPhrase = "DVD not created" }; throw new HttpResponseException(resp); } //Empty rating if (dvd.Rating == " " || string.IsNullOrEmpty(dvd.Rating)) { var resp = new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(string.Format("Must enter a rating even if unrated")), ReasonPhrase = "DVD not created" }; throw new HttpResponseException(resp); } //If vaild Add to the repo and return a 201 response repo.Create(dvd); return(Created($"/dvd/{dvd.DvdId}", dvd)); }
public IHttpActionResult GetByYear(int releaseYear) { var repo = DvdRepoFactory.Create(); List <Dvd> dvds = repo.GetAllByYear(releaseYear); if (dvds == null) { var resp = new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent(string.Format("No DVDs found with release year {0}", releaseYear)), ReasonPhrase = "DVDs Not Found" }; throw new HttpResponseException(resp); } return(Ok(dvds)); }
public IHttpActionResult Get(int id) { var repo = DvdRepoFactory.Create(); Dvd dvd = repo.Get(id); if (dvd == null) { var resp = new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent(string.Format("No DVD found with id = {0}", id)), ReasonPhrase = "DVD Not Found" }; throw new HttpResponseException(resp); } return(Ok(dvd)); }
public IHttpActionResult GetByDirector(string directorName) { var repo = DvdRepoFactory.Create(); List <Dvd> dvds = repo.GetAllByDirector(directorName); if (dvds == null) { var resp = new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent(string.Format("No DVDs found with director name \"{0}\"", directorName)), ReasonPhrase = "DVDs not found" }; throw new HttpResponseException(resp); } return(Ok(dvds)); }