/// <summary> /// Use builder fluently /// </summary> public SolarSystemModel CreateSmallSolarSystemFluently() { var model = FluentSolarSystemBuilder.Create(_builder) .Init("A small one") .AddPlanet("Alfa", 142, "rgb(1,192,255,0.5)", 15000) .AddPlanet("Beta", 180, "rgb(1,192,255,0.5)", 16000) .GetModel(); return(model); }
/// <summary> /// Use reusable builder fluently /// </summary> public SolarSystemModel CreateSmallSolarSystemFluentlyWithReusableBuilder() { var builder = FluentSolarSystemBuilder.Create(_builder).Init("System from two"); var model1 = builder .AddPlanet("Alfa", 142, "rgb(1,192,255,0.5)", 15000) .AddPlanet("Beta", 180, "rgb(1,192,255,0.5)", 16000) .GetModelAndReset(); var model2 = builder .AddPlanet("Gamma", 192, "rgb(1,192,255,0.5)", 18000) .AddPlanet("Teta", 220, "rgb(1,192,255,0.5)", 20000) .AddPlanet("Beta", 180, "rgb(1,192,255,0.5)", 16000) .GetModel(); return(model1 - model2); }
public SolarSystemModel CreateLargeSolarSystemFluently() { return(FluentSolarSystemBuilder.Create(_builder) .Init("Large one") .HandleEception(e => { if (e is SolarSystemBuilderException solarSystemBuilderException) { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(); Console.WriteLine($"=========== BuilderException {e.TargetSite.Name} occurred ==========="); Console.WriteLine(solarSystemBuilderException.ComposedMessage); Console.WriteLine("================================================="); Console.WriteLine(); Console.ResetColor(); } else { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(); Console.WriteLine($"=========== Exception {e.TargetSite.Name} occurred ==========="); Console.WriteLine(e.Message); Console.WriteLine("=========================================="); Console.WriteLine(); Console.ResetColor(); } }) .AddPlanet("Selene", 90, "rgb(1, 192, 255, 0.5)", 20000) .AddPlanet("Mimas", 116, "rgb(1, 192, 255, 0.5)", 20000) .AddPlanet("Ares", 142, "rgb(1, 192, 255, 0.5)", 20000) .AddPlanet("Enceladus", 168, "rgb(1, 192, 255, 0.5)", 23000) .AddPlanet("Tethys", 194, "rgb(1, 192, 255, 0.5)", 14000) .AddPlanet("Dione", 220, "rgb(1, 192, 255, 0.5)", 10000) .AddPlanet("Zeus", 246, "rgb(1, 192, 255, 0.5)", 53000) .AddPlanet("Rhea", 272, "rgb(1, 192, 255, 0.5)", 15000) .AddPlanet("Titan", 298, "rgb(1, 192, 255, 0.5)", 30000) .AddPlanet("Hyperion", 324, "rgb(1, 192, 255, 0.5)", 28000) .AddPlanet("Iapetus", 350, "rgb(1, 192, 255, 0.5)", 22000) .AddPlanet("Janus", 376, "rgb(1, 192, 255, 0.5)", 24000) .GetModel()); }