Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        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));
        }