示例#1
0
        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;
        }
示例#2
0
        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);
        }