using System.Collections.Generic;
using System.Threading.Tasks;
public class VehicleBusinessLogic
private IVehicleDataAccess _vehicleDataAccess;
private ILoggingService _loggingService;
public VehicleBusinessLogic(IVehicleDataAccess vehicleDataAccess, ILoggingService loggingService)
_vehicleDataAccess = vehicleDataAccess;
_loggingService = loggingService;
public async Task<IEnumerable<Vehicle>> SearchVehicles(string make, string year, string model)
var vehicles = await _vehicleDataAccess.GetVehicles(make, year, model);
if (vehicles.Count() > 0)
_loggingService.LogInfo($"Successfully retrieved {vehicles.Count()} vehicles.");
_loggingService.LogInfo($"No vehicles found.");
_loggingService.LogError(ex.Message);
return Enumerable.Empty<Vehicle>();
public interface IVehicleDataAccess
Task<IEnumerable<Vehicle>> GetVehicles(string make, string year, string model);
public class VehicleDataAccess : IVehicleDataAccess
public async Task<IEnumerable<Vehicle>> GetVehicles(string make, string year, string model)
return await Task.FromResult<List<Vehicle>>(new List<Vehicle>());
public class LoggingService : ILoggingService
public void LogInfo(string msg)
public void LogError(string msg)
public interface ILoggingService
void LogInfo(string msg);
void LogError(string msg);
public int ID { get; set; }
public string Make { get; set; }
public string Year { get; set; }
public string Model { get; set; }