コード例 #1
0
ファイル: BookController.cs プロジェクト: Crilexis/Rent-Car
        public HttpResponseMessage Post(string value)
        {
            Repository repository = new Repository();

            // se nada for enviado no corpo do post, retorna 400
            if (string.IsNullOrEmpty(value))
                return new HttpResponseMessage(HttpStatusCode.BadRequest);

            // parsing
            Book book = null;

            try
            {
                book = JsonConvert.DeserializeObject<Book>(value);
            }
            catch (Exception)
            {
                // adição minha, caso não consiga converter corretamente também envia um erro   
                return new HttpResponseMessage(HttpStatusCode.BadRequest);
            }

            // caso o carro informado não existe, retorna 404
            ICar[] cars = new Repository().GetAvailableCars();
            if (!cars.Any(x => x.Category == book.Car.Category && x.Model == book.Car.Model && x.Year == book.Car.Year))
                return new HttpResponseMessage(HttpStatusCode.NotFound);

            // tudo certo, salvando o agendamento
            repository.Book(book);

            return new HttpResponseMessage(HttpStatusCode.OK);
        }