public async Task <ActionResult <CarModel> > CreateCar([FromBody] CarAddModel car) { if (car == null) { return(await Task.FromResult <ActionResult>(this.BadRequest(new ErrorModel(1, "Id", "The car can not be null!").ToList()))); } if (car.Year < 1885) { return(await Task.FromResult <ActionResult>(this.UnprocessableEntity("Vehicle year is invalid!"))); } if (!Enum.IsDefined(typeof(EnumColor), car.Color)) { return(await Task.FromResult <ActionResult>(this.UnprocessableEntity("Color of the vehicle is invalid!"))); } if (CarRepository.Cars.Count() > 30) { return(await Task.FromResult <ActionResult>(this.UnprocessableEntity("It is not possible to add more vehicles, please delete the available vehicles!"))); } var result = this.InsertCar(car); if (result == null) { return(await Task.FromResult <ActionResult>(this.UnprocessableEntity("This car has already been registered!"))); } else { return(await Task.FromResult <ActionResult>(this.Created(result.Id.ToString(), result))); } }
private CarModel InsertCar(CarAddModel car) { if (CarRepository.Cars.Any(x => x.Brand.Equals(car.Brand, StringComparison.OrdinalIgnoreCase) && x.Model.Equals(car.Model, StringComparison.OrdinalIgnoreCase) && x.Year == car.Year)) { return(null); } var entity = new CarModel(car); CarRepository.Cars.Add(entity); return(entity); }