public void Add(CarBm car)
        {
            Car model = Mapper.Instance.Map <CarBm, Car>(car);

            this.Context.Cars.Add(model);
            this.Context.SaveChanges();
        }
        public void Edit(int id, CarBm bind)
        {
            Car model = this.Context.Cars.Find(id);

            model.Name  = bind.Name;
            model.Price = bind.Price;
            this.Context.SaveChanges();
        }
        // POST: api/Cars
        public IHttpActionResult Post(CarBm car)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.StatusCode(HttpStatusCode.BadRequest));
            }

            this.service.Add(car);
            return(this.StatusCode(HttpStatusCode.Created));
        }
        public void PutValidCarOnInvalidId_ShouldReturnNotFound()
        {
            CarBm testCar = new CarBm()
            {
                Name = "BMW", Price = 15
            };
            var data = this._controller.Put(3, testCar) as StatusCodeResult;

            Assert.AreEqual(HttpStatusCode.NotFound, data.StatusCode);
        }
        public void PutValidCar_ShouldReturnNoContent()
        {
            CarBm testCar = new CarBm()
            {
                Name = "Trabant", Price = 15
            };
            var data = this._controller.Put(1, testCar) as StatusCodeResult;

            Assert.AreEqual(HttpStatusCode.NoContent, data.StatusCode);
        }
        public void PostValidCar_ShouldAddToRepo()
        {
            CarBm testCar = new CarBm()
            {
                Name = "Trabant", Price = 15
            };
            var data = this._controller.Post(testCar) as StatusCodeResult;

            Assert.AreEqual(3, this._context.Cars.Count());
        }
        public void PostValidCar_ShouldReturnCreated()
        {
            CarBm testCar = new CarBm()
            {
                Name = "Trabant", Price = 15
            };
            var data = this._controller.Post(testCar) as StatusCodeResult;

            Assert.AreEqual(HttpStatusCode.Created, data.StatusCode);
        }
        public void PutValidCar_ShouldModifyCar()
        {
            CarBm testCar = new CarBm()
            {
                Name = "Trabant", Price = 15
            };
            var data = this._controller.Put(1, testCar) as StatusCodeResult;

            Assert.AreEqual("Trabant", this.cars[0].Name);
            Assert.AreEqual(15, this.cars[0].Price);
        }
        public void PutInvalidCar_ShouldReturnBadRequest()
        {
            CarBm testCar = new CarBm()
            {
                Name = "Go", Price = 15
            };

            this._controller.Validate(testCar);
            var data = this._controller.Put(1, testCar) as StatusCodeResult;

            Assert.AreEqual(HttpStatusCode.BadRequest, data.StatusCode);
        }
        // PUT: api/Cars/5
        public IHttpActionResult Put(int id, CarBm bind)
        {
            if (!this.service.ContainsCar(id))
            {
                return(this.StatusCode(HttpStatusCode.NotFound));
            }

            if (!this.ModelState.IsValid)
            {
                return(this.StatusCode(HttpStatusCode.BadRequest));
            }

            this.service.Edit(id, bind);
            return(this.StatusCode(HttpStatusCode.NoContent));
        }