static void Main(string[] args) { LawnCareAgency agency = new LawnCareAgency(); ILawnCareProvider provider = agency.GetBestProviderAvailable(); provider.BookMowing(); provider = agency.GetBestProviderAvailable(); provider.BookRaking(); provider = agency.GetBestProviderAvailable(); provider.BookWeedRemoval(); provider = agency.GetBestProviderAvailable(); provider.BookRaking(); provider = agency.GetBestProviderAvailable(); provider.BookMowing(); //ILawnCareProvider ssProvider = new SonicScholarLawnCareProvider(); //ILawnCareProvider mediocoreProvider = new MediocreLawnCareProvider(); //bool available = ssProvider.IsAvailable; //ssProvider.BookMowing(); //available = ssProvider.IsAvailable; //ssProvider.BookRaking(); //available = ssProvider.IsAvailable; //ssProvider.BookWeedRemoval(); //available = ssProvider.IsAvailable; }
public ILawnCareProvider GetBestProviderAvailable() { ILawnCareProvider result = null; int maxRating = 0; foreach (var p in _lawnCareProviders) { int rating = p.Rating; bool available = p.IsAvailable; if (rating > maxRating && available) { maxRating = rating; result = p; } } return(result); }