public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource) { if (!ModelState.IsValid) { Console.WriteLine(vehicleResource.Contact.Name); Console.WriteLine(vehicleResource.Id); foreach (var state in ModelState) { foreach (var error in state.Value.Errors) { Console.WriteLine(error.ErrorMessage); } } return(BadRequest(ModelState)); } var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource); var features = repository.GetAllFeature(); vehicle.LastUpdate = DateTime.Now; repository.Add(vehicle); await unitOfWork.CompleteAsync(); vehicle = await repository.GetVehicle(vehicle.Id); var res = (from item in features join value in vehicleResource.Features on item.Id equals value select item).ToList(); foreach (Feature feature in res) { var modelToAdd = new VehicleFeature { VehicleId = vehicle.Id, FeatureId = feature.Id }; repository.AddVehicleFeature(modelToAdd); vehicle.Features.Add(modelToAdd); } await unitOfWork.CompleteAsync(); var result = mapper.Map <Vehicle, VehicleResource>(vehicle); return(Ok(result)); }