public ResponseMessage AddVehicles(VehicleDto vehicleModel) { try { //Business logic to verify track overload status bool checkTrackOverload = _vehicleRepository.FindAll().Count() >= allowedVehicleOnTrack ? true : false; //Business logic to check vehicle inspection status if (!VehicleInspection(vehicleModel)) { return(ResponseMessage.InspectionFail); } Vehicle vehicle = new Vehicle(); vehicle.Id = Guid.NewGuid(); vehicle.Name = vehicleModel.Name; vehicle.Type = vehicleModel.Type; vehicle.isTow = vehicleModel.isTow; vehicle.Lift = vehicleModel.Lift; vehicle.Tire = vehicleModel.Tire; vehicle.Image = vehicleModel.Image; //Business logic for show track overload when track is full if (checkTrackOverload) { return(ResponseMessage.Overloaded); } //Business logic to save vehicle data in database _vehicleRepository.Add(vehicle); _vehicleRepository.Database.SaveChanges(); return(ResponseMessage.Inserted); } catch (Exception) { return(ResponseMessage.None); } }