public static void RegisterGoogleEngine(this IServiceCollection serviceCollection, Action <GoogleBuilder> builder) { var config = new GoogleBuilder(); builder(config); if (string.IsNullOrEmpty(config.Key)) { throw new NullReferenceException("Google API Key must be specified"); } if (string.IsNullOrEmpty(config.Cx)) { throw new NullReferenceException("Google Search Engine Id (cx) must be specified"); } serviceCollection.AddSingleton <IGoogleConfiguration>(config); serviceCollection.AddTransient <ISearchEngine, GoogleSearchEngine>(); if (SearcherRegistered) { return; } serviceCollection.AddTransient <ISearcher, Searcher>(); SearcherRegistered = true; }
static void Main(string[] args) { Console.WriteLine("Hello World!"); ReviewDirector director = new ReviewDirector(); GoogleBuilder googleBuilder = new GoogleBuilder(); director.constructBadGoogleReview(googleBuilder); var badGoogleReview = googleBuilder.getReview(); FacebookBuilder facebookBuilder = new FacebookBuilder(); director.constructAmazingFacebookRecommendation(facebookBuilder); var amazingFacebookReview = facebookBuilder.getReview(); }