private static void ChainOfResponsability() { try { // Setup Chain of Responsibility Approver director = new Director(); Approver vicePresidente = new VicePresident(); Approver presidente = new President(); director.SetSuccessor(vicePresidente); vicePresidente.SetSuccessor(presidente); // Generate and process purchase requests Purchase p = new Purchase(2034, 350.00, "Assets"); director.ProcessRequest(p); p = new Purchase(2035, 72590.10, "Project X"); director.ProcessRequest(p); p = new Purchase(2036, 122100.00, "Project Y"); director.ProcessRequest(p); // Wait for user Console.ReadKey(); } catch (Exception ex) { throw new Exception(ex.Message); } }
static void Main(string[] args) { // Setup Chain of Responsibility Approver larry = new Director(); Approver sam = new VicePresident(); Approver tammy = new President(); larry.SetSuccessor(sam); sam.SetSuccessor(tammy); // Generate and process purchase requests Purchase p = new Purchase(2034, 350.00, "Assets"); larry.ProcessRequest(p); p = new Purchase(2035, 32590.10, "Project X"); larry.ProcessRequest(p); p = new Purchase(2036, 122100.00, "Project Y"); larry.ProcessRequest(p); // Wait for user Console.ReadKey(); }
static void Main(string[] args) { var director = new Director(); var visaPresident = new VicePresident(); var president = new President(); director.SetSuccessor(visaPresident); visaPresident.SetSuccessor(president); director.ProcessRequest(new Purchase(10000, 55000, "Project X")); }
public static void Main() { Approver teamLead = new TeamLead(); Approver vicePresident = new VicePresident(); Approver president = new President(); teamLead.SetSuccessor(vicePresident); vicePresident.SetSuccessor(president); Purchase purchase = new Purchase(2019, 90000.00); teamLead.ProcessRequest(purchase); }
public void Run() { Approver mrDirector = new Director(); Approver mrVicePresident = new VicePresident(); Approver mrPresident = new President(); mrDirector.SetSuccessor(mrVicePresident); mrVicePresident.SetSuccessor(mrPresident); mrDirector.ProcessRequest(new Purchase(1, 350.00, "Assets")); mrDirector.ProcessRequest(new Purchase(2, 32590.10, "Project X")); mrDirector.ProcessRequest(new Purchase(3, 122100.00, "project Y")); }
public static void Run() { PurchaseRequest req = new PurchaseRequest(60000, "Purchase PC for employee. "); Approver approver = new Director("刘主任"); Approver approver1 = new President("张董事"); Approver approver2 = new VicePresident("王副董"); Approver approver3 = new Congress("董事会"); approver.SetSuccessor(approver2); approver1.SetSuccessor(approver3); approver2.SetSuccessor(approver1); approver.HandleRequest(req); }
static void Main(string[] args) { Project projectX = new Project("Project X", 24000); Project projectY = new Project("Project Y", 48000); Project projectZ = new Project("Project Z", 79000); Approver director = new Director(); Approver vp = new VicePresident(); Approver pres = new President(); director.SetSuccessor(vp); vp.SetSuccessor(pres); director.ApproveProject(projectX); // Will be approved by the director director.ApproveProject(projectY); // Will be approved by the VP director.ApproveProject(projectZ); // Will be approved by the President }
static void Main() { Approver larry = new Director(); Approver sam = new VicePresident(); Approver tammy = new President(); larry.SetSuccessor(sam); sam.SetSuccessor(tammy); Purchase p = new Purchase(2034, 350.00, "Assets"); larry.ProcessRequest(p); p = new Purchase(2035, 32590.10, "Project X"); larry.ProcessRequest(p); p = new Purchase(2036, 122100.00, "Project Y"); larry.ProcessRequest(p); }
private static void Main() { var larry = new Director(); var sam = new VicePresident(); var tammy = new President(); larry.SetSuccessor(sam); sam.SetSuccessor(tammy); var purchase = new Purchase(1231, 350.0, "Assets"); larry.ProcessRequest(purchase); purchase = new Purchase(321, 12313.123, "Project X"); larry.ProcessRequest(purchase); purchase = new Purchase(123123, 123123123.123, "Project Y"); larry.ProcessRequest(purchase); }
internal static void Main() { Approver teamLead = new TeamLead(); Approver vicePresident = new VicePresident(); Approver president = new President(); teamLead.SetSuccessor(vicePresident); vicePresident.SetSuccessor(president); var purchase = new Purchase(2034, 350.00); teamLead.ProcessRequest(purchase); purchase = new Purchase(2035, 32590.10); teamLead.ProcessRequest(purchase); purchase = new Purchase(2036, 122100.00); teamLead.ProcessRequest(purchase); }
public static void Main() { Approver teamLead = new TeamLead(); Approver vp = new VicePresident(); Approver ceo = new President(); teamLead.SetSuccessor(vp); vp.SetSuccessor(ceo); var purchase = new Purchase(2034, 350.00); teamLead.ProcessRequest(purchase); purchase = new Purchase(2035, 32590.10); teamLead.ProcessRequest(purchase); purchase = new Purchase(2036, 122100.00); teamLead.ProcessRequest(purchase); }
public static void Main() { Approver ronny = new Director(); Approver bobby = new VicePresident(); Approver ricky = new President(); ronny.SetSuccessor(bobby); bobby.SetSuccessor(ricky); Purchase p = new Purchase(8884, 350.00, "Assets"); ronny.ProcessRequest(p); p = new Purchase(5675, 33390.10, "Project Poison"); ronny.ProcessRequest(p); p = new Purchase(5676, 144400.00, "Project BBD"); ronny.ProcessRequest(p); }
static void Main(string[] args) { Approver andrei = new Director(); Approver gelu = new VicePresident(); Approver valentin = new President(); andrei.SetSuccessor(gelu); gelu.SetSuccessor(valentin); var p = new Purchase(2034, 350.00, "Assets"); andrei.ProcessRequest(p); p = new Purchase(2035, 32590.10, "Project X"); andrei.ProcessRequest(p); p = new Purchase(2036, 122100.00, "Project Y"); andrei.ProcessRequest(p); }
public static void ChainOfResponsibility() { Approver vicePresident = new VicePresident(); Approver president = new President(); Approver director = new Director(); director.SetSuccessor(vicePresident); vicePresident.SetSuccessor(president); var order1 = new Purchase(2034, 350.0, "Assets"); director.ProcessRequest(order1); var order2 = new Purchase(2035, 35000.0, "Assets bigger amount."); director.ProcessRequest(order2); var order3 = new Purchase(2036, 350000.0, "Assets the biggest amount."); director.ProcessRequest(order3); }
private static void ChainOfResponsibilityDemo() { Approver larry = new DesignPatterns.ChainOfResponsibility.Director(); Approver sam = new VicePresident(); Approver tammy = new DesignPatterns.ChainOfResponsibility.President(); larry.SetSuccessor(sam); sam.SetSuccessor(tammy); // Generate and process purchase requests Purchase p = new Purchase(2034, 350.00, "Assets"); larry.ProcessRequest(p); p = new Purchase(2035, 32590.10, "Project X"); larry.ProcessRequest(p); p = new Purchase(2036, 122100.00, "Project Y"); larry.ProcessRequest(p); }
public static void ChainOfRespRealWorld() { // Setup Chain of Responsibility Approver larry = new Boss(); Approver sam = new VicePresident(); Approver tammy = new President(); larry.SetSuccessor(sam); sam.SetSuccessor(tammy); // Generate and process purchase requests Purchase p = new Purchase(2034, 350.00, "Assets"); larry.ProcessRequest(p); p = new Purchase(2035, 32590.10, "Project X"); larry.ProcessRequest(p); p = new Purchase(2036, 122100.00, "Project Y"); larry.ProcessRequest(p); }
public void Run(IUnityContainer Container) { // Setup Chain of Responsibility Approver larry = new Director(); Approver sam = new VicePresident(); Approver tammy = new President(); larry.SetSuccessor(sam); sam.SetSuccessor(tammy); // Generate and process purchase requests Purchase p = new Purchase(2034, 350.00, "Assets"); larry.ProcessRequest(p); p = new Purchase(2035, 32590.10, "Project X"); larry.ProcessRequest(p); p = new Purchase(2036, 122100.00, "Project Y"); larry.ProcessRequest(p); }
static void Main(string[] args) { // Setup Chain of Responsibility Approver larry = new Director(); Approver sam = new VicePresident(); Approver tammy = new President(); Approver July = new Chairperson(); larry.SetSuccessor(sam); sam.SetSuccessor(July); July.SetSuccessor(tammy); // Generate and process purchase requests Purchase purchase1 = new Purchase(2034, 5000.00, "Assets"); larry.ProcessRequest(purchase1); Purchase purchase2 = new Purchase(2035, 20000.00, "Keyboard"); larry.ProcessRequest(purchase2); Purchase purchase3 = new Purchase(2036, 30000.00, "Mouse"); larry.ProcessRequest(purchase3); Purchase purchase4 = new Purchase(2037, 90000.00, "CPU"); larry.ProcessRequest(purchase4); Purchase purchase5 = new Purchase(2038, 600000.00, "GPU"); larry.ProcessRequest(purchase5); // Wait for user Console.ReadKey(); }
public static void Main() { Approver teamLead = new TeamLead(); Approver vicePresident = new VicePresident(); Approver president = new President(); teamLead.SetSuccessor(vicePresident); vicePresident.SetSuccessor(president); var purchase = new Purchase(350, 1); teamLead.ProcessRequest(purchase); purchase = new Purchase(24000, 2); teamLead.ProcessRequest(purchase); purchase = new Purchase(32590, 3); teamLead.ProcessRequest(purchase); purchase = new Purchase(100001, 4); teamLead.ProcessRequest(purchase); }
static void ChainOfResponsibilityTester() { #region sample 1 // Setup Chain of Responsibility Handler h1 = new ConcreteHandler1(); Handler h2 = new ConcreteHandler2(); Handler h3 = new ConcreteHandler3(); h1.SetSuccessor(h2); h2.SetSuccessor(h3); // Generate and process request int[] requests = { 2, 5, 14, 22, 18, 3, 27, 20 }; foreach (int request in requests) { h1.HandleRequest(request); } #endregion #region sample 2 // Setup Chain of Responsibility Approver larry = new Director(); Approver sam = new VicePresident(); Approver tammy = new President(); larry.SetSuccessor(sam); sam.SetSuccessor(tammy); // Generate and process purchase requests Purchase p = new Purchase(2034, 350.00, "Assets"); larry.ProcessRequest(p); p = new Purchase(2035, 32590.10, "Project X"); larry.ProcessRequest(p); p = new Purchase(2036, 122100.00, "Project Y"); larry.ProcessRequest(p); #endregion }
public static void TestApprovals() { Approver larry = new Director(); Approver sam = new VicePresident(); Approver tammy = new President(); larry.SetSuccessor(sam); sam.SetSuccessor(tammy); Purchase p = new Purchase(2034, 350.00, "Assets"); var p1result = larry.ProcessRequest(p, true); Assert.AreEqual(p1result, larry); p = new Purchase(2035, 32590.10, "Project X"); var p2result = larry.ProcessRequest(p, true); Assert.AreEqual(p2result, tammy); p = new Purchase(2036, 122100.00, "Project Y"); var p3result = larry.ProcessRequest(p, true); Assert.AreEqual(p3result, null); }
public static void Perform() { Approver larry = new Director(); Approver sam = new VicePresident(); Approver tammy = new President(); larry.SetSuccessor(sam); sam.SetSuccessor(tammy); // Generate and process purchase requests Purchase p = new Purchase(2034, 350.00, "Assets"); larry.ProcessRequest(p); p = new Purchase(2035, 32590.10, "Project X"); larry.ProcessRequest(p); p = new Purchase(2036, 122100.00, "Project Y"); larry.ProcessRequest(p); Console.WriteLine(); }
static void Main(string[] args) { // Setup Chain of Responsibility Approver larry = new Director(); Approver sam = new VicePresident(); Approver tammy = new Secretary(); Approver raul = new President(); larry.SetSuccessor(sam); sam.SetSuccessor(tammy); tammy.SetSuccessor(raul); // Generate and process purchase requests Purchase p = new Purchase(2034, 350.00, "Assets"); larry.ProcessRequest(p); p = new Purchase(2035, 22999.99, "Project X"); larry.ProcessRequest(p); p = new Purchase(2036, 32590.10, "New car"); larry.ProcessRequest(p); p = new Purchase(2037, 91000.00, "Project Almanaq"); larry.ProcessRequest(p); p = new Purchase(5451, 85000250.50, "New house for Raúl"); larry.ProcessRequest(p); // Wait for user Console.ReadKey(); }
static void Main() { // Setup Chain of Responsibility Approver ronny = new Director(); Approver bobby = new VicePresident(); Approver ricky = new President(); ronny.SetSuccessor(bobby); bobby.SetSuccessor(ricky); // Generate and process purchase requests Purchase p = new Purchase(8884, 350.00, "Assets"); ronny.ProcessRequest(p); p = new Purchase(5675, 33390.10, "Project Poison"); ronny.ProcessRequest(p); p = new Purchase(5676, 144400.00, "Project BBD"); ronny.ProcessRequest(p); // Wait for user Console.ReadKey(); }
// Entry point into console application. static void Main() { // Setup Chain of Responsibility (bottom-up) Approver larry = new Director(); Approver sam = new VicePresident(); Approver tammy = new President(); larry.SetSuccessor(sam); sam.SetSuccessor(tammy); // Generate and process purchase requests Purchase p = new Purchase(2034, 350.00, "Assets"); larry.ProcessRequest(p); p = new Purchase(2035, 32590.10, "Project X"); larry.ProcessRequest(p); p = new Purchase(2036, 92100.00, "Project Y"); larry.ProcessRequest(p); p = new Purchase(2037, 122100.00, "Project Y"); larry.ProcessRequest(p); // Wait for user Console.ReadKey(); }
public static void Main( string[] args ) { // Setup Chain of Responsibility Director Larry = new Director( "Larry" ); VicePresident Sam = new VicePresident( "Sam" ); President Tammy = new President( "Tammy" ); Larry.SetSuccessor( Sam ); Sam.SetSuccessor( Tammy ); // Generate and process different requests PurchaseRequest rs = new PurchaseRequest( 2034, 350.00, "Supplies" ); Larry.ProcessRequest( rs ); PurchaseRequest rx = new PurchaseRequest( 2035, 32590.10, "Project X" ); Larry.ProcessRequest( rx ); PurchaseRequest ry = new PurchaseRequest( 2036, 122100.00, "Project Y" ); Larry.ProcessRequest( ry ); }
static void Main(string[] args) { #region Decorator - Using Composition to limit inheritance and simplify object relationships easier to maintain and manage. //Inside ConcreteDecorator any number of features can be added to the car and price for the car can be updated. Decorator.Component.Car sampleCar = new CompactCar(); sampleCar = new LeatherSeats(sampleCar); Console.WriteLine(sampleCar.GetDescription()); Console.WriteLine($"{sampleCar.GetCarPrice():C2}"); #endregion #region Observer - Change in one object causes a change or action in another. var trump = new Trump("I love my wife"); var firstFan = new Fan("Rohit"); var secondFan = new Fan("Ram"); trump.AddFollower(firstFan); trump.AddFollower(secondFan); trump.Tweet = "I hate media"; #endregion #region Builder Pattern- Separate and reuse a specific process to build an object /use when constructing a complex object //Director- construct () //Builder - Build part //CarBuilder to construct two types of cars //override the method of building a car in separate classes which derive from an abstract carbuilder //create a list of carbuilder objects to specify the current known types of cars that can be built //create a factory var superBuilder = new SuperCarBuilder(); var notSoSsuperBuilder = new NotSoSuperCarBuilder(); var factory = new CarFactory(); var builders = new List <CarBuilder> { superBuilder, notSoSsuperBuilder }; foreach (var b in builders) { var c = factory.Build(b); Console.WriteLine($"The car requested by " + $"{b.GetType().Name}:" + Environment.NewLine + $"Horse Power: {c.HorsePower}" + Environment.NewLine + $"Impressive feature: {c.MostImpressiveFeature}" + Environment.NewLine + $"Top speed: {c.TopSpeedMPH} mph" + Environment.NewLine); } #endregion #region Bridge Pattern- Used to separate an abstraction from its implementation so both can be modified independently //Sending messages from sms or service without each affecting the other IMessageSender text = new TextSender(); IMessageSender web = new WebServiceSender(); Message message = new SystemMessage(text); message.Subject = "A message"; message.Body = "hi there, please know this"; message.MessageSender = text; message.Send(); message.MessageSender = web; message.Send(); #endregion #region Chain of responsibility- Chain the receiving objects and pass the request along the chain until an object handles it. //Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request Approver Bobby = new Director(); Approver Sunny = new VicePresident(); Approver Dharam = new President(); Bobby.SetSuccessor(Sunny); Sunny.SetSuccessor(Dharam); Purchase P = new Purchase() { Amount = 10000, Number = 1 }; Bobby.ProcessRequest(P); #endregion #region Command - Wrap request as an object to be implemented later or invoke at different points in time. //Encapsulate a request as an object, thereby letting you parameterize clients with different requests -queue or log and support undoable operations //Use an object to store required information to perform an action at any point in time. var user = new User(); user.Compute('+', 100); user.Compute('-', 50); user.Compute('*', 10); user.Compute('/', 2); //undo user.Undo(4); //Redo user.Redo(3); #endregion Console.ReadLine(); }
public DesignPatternModule() { Get["/testStatePattern"] = _ => { var traficLight = new TraficLight(); var process = traficLight.StartTheTraficLight(); return(process); }; Get["/testNullObjectPattern"] = _ => { var dog = new Dog(); var dougSound = "Dog Sound: " + dog.MakeSound() + ", "; var unknown = Animal.Null; var noAnimalSound = "No Animal Sound: " + unknown.MakeSound(); return(dougSound + noAnimalSound); }; Get["/testObserverPattern"] = _ => { var observable = new Observable(); var observer = new Observer(); observable.SomethingHappened += observer.HandleEvent; var observerValue = observable.DoSomething(); return(observerValue); }; Get["/testBridgePattern/{currentSource}"] = _ => { var currentSource = (string)_.currentSource; var myCustomTv = new MyCustomTv(); switch (currentSource) { case "1": myCustomTv.VideoSource = new LocalCableTv(); break; case "2": myCustomTv.VideoSource = new CableColorTv(); break; case "3": myCustomTv.VideoSource = new TigoService(); break; } var tvGuide = myCustomTv.ShowTvGuide(); var playVideo = myCustomTv.ShowTvGuide(); return(tvGuide + " / " + playVideo); }; Get["/testVisitorPattern"] = _ => { var popRock = new PopRockMusicVisitor(); var musicLibrary = new MusicLibrary(); var songs = musicLibrary.Accept(popRock); return(songs); }; Get["/testBuilderPattern"] = _ => { var shop = new Shop(); VehicleBuilder builder = new CarBuilder(); shop.Construct(builder); var getBuilderProcess = builder.Vehicle.Show(); return(getBuilderProcess); }; Get["/testInterpreterPattern"] = _ => { const string roman = "MCMXXVIII"; var context = new Context(roman); var tree = new List <Expression> { new ThousandExpression(), new HundredExpression(), new TenExpression(), new OneExpression() }; foreach (var exp in tree) { exp.Interpret(context); } return("Interpreter Input: " + roman + ", Interpreter Output: " + context.Output); }; Get["/testChainOfResponsabilityPattern"] = _ => { var response = ""; var pamela = new Director(); var byron = new VicePresident(); var colin = new President(); pamela.SetSuccessor(byron); byron.SetSuccessor(colin); var p = new Purchase(2034, 350.00, "Assets"); response = pamela.ProcessRequest(p); p = new Purchase(2035, 32590.10, "Project X"); response += " / " + pamela.ProcessRequest(p); p = new Purchase(2036, 90000.00, "Project Y"); response += " / " + pamela.ProcessRequest(p); p = new Purchase(2036, 122100.00, "Project Z"); response += " / " + pamela.ProcessRequest(p); return(response); }; Get["/testIteratorPattern"] = _ => { var collection = new Collection(); collection[0] = new Item("Item 0"); collection[1] = new Item("Item 1"); collection[2] = new Item("Item 2"); collection[3] = new Item("Item 3"); collection[4] = new Item("Item 4"); collection[5] = new Item("Item 5"); collection[6] = new Item("Item 6"); collection[7] = new Item("Item 7"); collection[8] = new Item("Item 8"); var iterator = collection.CreateIterator(); iterator.Step = 2; var response = "Iterating over collection:"; for (var item = iterator.First(); !iterator.IsDone; item = iterator.Next()) { response += item.Name + " / "; } return(response); }; Get["/testAdapterPattern"] = _ => { var response = ""; var unknown = new Compound("Unknown"); response += " / " + unknown.Display(); var water = new RichCompound("Water"); response += " / " + water.Display(); var benzene = new RichCompound("Benzene"); response += " / " + benzene.Display(); var ethanol = new RichCompound("Ethanol"); response += " / " + ethanol.Display(); return(response); }; Get["/testCommandPattern"] = _ => { var response = ""; var user = new User(); response += user.Compute('+', 100) + " / "; response += user.Compute('-', 50) + " / "; response += user.Compute('*', 10) + " / "; response += user.Compute('/', 2) + " / "; response += user.Undo(4) + " / "; response += user.Redo(3); return(response); }; Get["/testFactoryPattern"] = _ => { var response = ""; var documents = new Document[2]; documents[0] = new Resume(); documents[1] = new Report(); foreach (var document in documents) { response += document.GetType().Name + "--"; foreach (var page in document.Pages) { response += " " + page.GetType().Name; } } return(response); }; Get["/testStrategyPattern"] = _ => { var response = ""; var studentRecords = new SortedList(); studentRecords.Add("Samual"); studentRecords.Add("Jimmy"); studentRecords.Add("Sandra"); studentRecords.Add("Vivek"); studentRecords.Add("Anna"); studentRecords.SetSortStrategy(new QuickSort()); response += "Quicksort: " + studentRecords.Sort() + " -- "; studentRecords.SetSortStrategy(new ShellSort()); response += "ShellSort: " + studentRecords.Sort() + " -- "; studentRecords.SetSortStrategy(new MergeSort()); response += "MergeSort: " + studentRecords.Sort(); return(response); }; Get["/testTemplatePattern"] = _ => { var response = ""; AbstractClass aA = new ConcreteClassA(); response += aA.TemplateMethod(); AbstractClass aB = new ConcreteClassB(); response += aB.TemplateMethod(); return(response); }; Get["/testFacadePattern"] = _ => { var response = ""; var mortgage = new Mortgage(); var customer = new Customer("Ann McKinsey"); var eligible = mortgage.IsEligible(customer, 125000); response += customer.Name + " has been " + (eligible ? "Approved" : "Rejected"); return(response); }; Get["/mediatorPattern"] = _ => { var response = ""; var chatroom = new Chatroom(); Participant paul = new Beatle("Paul"); Participant john = new Beatle("John"); Participant yoko = new NonBeatle("Yoko"); Participant ringo = new Beatle("Ringo"); chatroom.Register(paul); chatroom.Register(john); chatroom.Register(yoko); chatroom.Register(ringo); response += yoko.Send("John", "Hi John!") + " "; response += paul.Send("Ringo", "All you need is love") + " "; response += paul.Send("John", "Can't buy me love") + " "; response += john.Send("Yoko", "My sweet love"); return(response); }; Get["/testFlyweightPattern"] = _ => { var response = ""; const string document = "AAZZBBZB"; var chars = document.ToCharArray(); var factory = new CharacterFactory(); var pointSize = 10; foreach (var c in chars) { pointSize++; var character = factory.GetCharacter(c); response += character.Display(pointSize) + " "; } return(response); }; Get["/testMomentoPattern"] = _ => { var response = "Save Sales, Restore Memento"; var s = new SalesProspect { Name = "Noel van Halen", Phone = "(412) 256-0990", Budget = 25000.0 }; var m = new ProspectMemory { Memento = s.SaveMemento() }; s.Name = "Leo Welch"; s.Phone = "(310) 209-7111"; s.Budget = 1000000.0; s.RestoreMemento(m.Memento); return(response); }; Get["/testDoubleDispatchPattern"] = _ => { var response = ""; object x = 5; var dispatch = new DoubleDispatch(); response += dispatch.Foo <int>(x); response += dispatch.Foo <string>(x.ToString()); return(response); }; Get["/testTransactionScriptPattern"] = _ => { var response = ""; response += "Booked Holiday: " + HolidayService.BookHolidayFor(1, new DateTime(2016, 12, 31), new DateTime(2017, 1, 5)) + " - "; response += "Employes Leaving in Holiday: " + string.Join(", ", HolidayService.GetAllEmployeesOnLeaveBetween(new DateTime(2016, 12, 31), new DateTime(2017, 1, 5)).Select(x => x.Name)) + " - "; response += "Employes without Holiday: " + string.Join(", ", HolidayService.GetAllEmployeesWithHolidayRemaining().Select(x => x.Name)); return(response); }; }
static void Main(string[] args) { Console.WriteLine("******Singleton******\n"); LoadBalancer L1 = LoadBalancer.GetLoadBalancer(); LoadBalancer L2 = LoadBalancer.GetLoadBalancer(); LoadBalancer L3 = LoadBalancer.GetLoadBalancer(); LoadBalancer L4 = LoadBalancer.GetLoadBalancer(); if (L1 == L2 && L2 == L3 && L3 == L4) { Console.WriteLine("Same Instance"); } LoadBalancer load = LoadBalancer.GetLoadBalancer(); for (int i = 0; i < 15; i++) { Console.WriteLine(load.Server); } Console.WriteLine("\n******AbstractFactory******\n"); ContinentFactory africa = new AfricaFactory(); AnimalWorld earth = new AnimalWorld(africa); earth.RunFoodChain(); ContinentFactory america = new AmericaFactory(); earth = new AnimalWorld(america); earth.RunFoodChain(); Console.WriteLine("\n******Factory******\n"); Document[] document = new Document[2]; document[0] = new Report(); document[1] = new Resume(); foreach (Document doc in document) { Console.WriteLine(doc.GetType().Name + " contains:"); foreach (Page page in doc.Pages) { Console.WriteLine("\t" + page.GetType().Name); } } Console.WriteLine("\n******Facade******\n"); Mortgage mort = new Mortgage(); Customer customer = new Customer("Chad"); int amount = 100000; bool elligable = mort.IsElligable(customer, amount); Console.WriteLine(customer.Name + " is " + (elligable ? "elligable" : "not elligable")); Console.WriteLine("\n******Decorator******\n"); Book book = new Book("George RR Martin", "A song of ice and fire", 22); book.Display(); Video video = new Video("Jaws", "Spielberg", 92, 18); video.Display(); Borrowable borrowableVideo = new Borrowable(video); borrowableVideo.BorrowItem("Sky"); borrowableVideo.BorrowItem("Inga"); borrowableVideo.Display(); Console.WriteLine("\n******Prototype******\n"); ColorManager colorManager = new ColorManager(); colorManager["red"] = new Color(255, 0, 0); colorManager["green"] = new Color(0, 255, 0); colorManager["blue"] = new Color(0, 0, 255); colorManager["angry"] = new Color(255, 54, 0); colorManager["peace"] = new Color(128, 211, 128); colorManager["flame"] = new Color(211, 34, 20); Color color1 = colorManager["red"].Clone() as Color; Color color2 = colorManager["peace"].Clone() as Color; Color color3 = colorManager["flame"].Clone() as Color; Console.WriteLine("\n******Builder******\n"); VehicleBuilder builder; Shop shop = new Shop(); builder = new ScooterBuilder(); shop.Construct(builder); builder.Vehicle.Show(); builder = new CarBuilder(); shop.Construct(builder); builder.Vehicle.Show(); builder = new MotorcycleBuilder(); shop.Construct(builder); builder.Vehicle.Show(); Console.WriteLine("\n******Adapter******\n"); Compound unknown = new RichCompound("Unknown"); unknown.Display(); Compound water = new RichCompound("Water"); water.Display(); Compound benzene = new RichCompound("Benzene"); benzene.Display(); Compound ethanol = new RichCompound("Ethanol"); ethanol.Display(); Console.WriteLine("\n******Bridge******\n"); Customers customers = new Customers("Chicago"); customers.Data = new CustomersData(); customers.Show(); customers.Next(); customers.Show(); customers.Next(); customers.Show(); customers.Add("Henry Velasquez"); customers.ShowAll(); Console.WriteLine("\n******Composite******\n"); CompositeElement root = new CompositeElement("Picture"); root.Add(new PrimitiveElement("Red Line")); root.Add(new PrimitiveElement("Blue Circle")); root.Add(new PrimitiveElement("Green Box")); CompositeElement comp = new CompositeElement("Two Circles"); comp.Add(new PrimitiveElement("Black Circle")); comp.Add(new PrimitiveElement("White Circle")); root.Add(comp); PrimitiveElement pe = new PrimitiveElement("Yellow Line"); root.Add(pe); root.Remove(pe); root.Display(1); Console.WriteLine("\n******Observer******\n"); IBM ibm = new IBM("IBM", 120.00); ibm.Attach(new Investor("Sorros")); ibm.Attach(new Investor("Berkshire")); ibm.Price = 120.10; ibm.Price = 121.00; ibm.Price = 120.50; ibm.Price = 120.75; Console.WriteLine("\n******Strategy******\n"); SortedList studentRecords = new SortedList(); studentRecords.Add("Samuel"); studentRecords.Add("Jimmy"); studentRecords.Add("Sandra"); studentRecords.Add("Vivek"); studentRecords.Add("Anna"); studentRecords.SetSortStrategy(new QuickSort()); studentRecords.Sort(); studentRecords.SetSortStrategy(new ShellSort()); studentRecords.Sort(); studentRecords.SetSortStrategy(new MergeSort()); studentRecords.Sort(); /* * Console.WriteLine("\n******Template******\n"); * DataAccessObject daoCategories = new Categories(); * daoCategories.Run(); * * DataAccessObject daoProducts = new Products(); * daoProducts.Run(); */ Console.WriteLine("\n***Chain of Responsibility***\n"); Approver larry = new Director(); Approver sam = new VicePresident(); Approver tammy = new President(); larry.SetSuccessor(sam); sam.SetSuccessor(tammy); Purchase p = new Purchase(2034, 350.00, "Assets"); larry.ProcessRequest(p); p = new Purchase(2035, 32590.10, "Project X"); larry.ProcessRequest(p); p = new Purchase(2036, 122100.00, "Project Y"); larry.ProcessRequest(p); Console.WriteLine("\n******Command******\n"); User user = new User(); user.Compute('+', 100); user.Compute('-', 50); user.Compute('*', 10); user.Compute('/', 2); user.Undo(4); user.Redo(3); Console.ReadKey(); }
static void Main(string[] args) { AbstractPlatform _platform = configurationPlatform(); _platform.Paint(); Console.WriteLine("==========================================================================="); Console.WriteLine("================================== Stragery ==============================="); var reports = new List <DeveloperReport> { new DeveloperReport { Id = 1, Name = "Dev1", Level = DeveloperLevel.Senior, HourlyRate = 30.5, WorkingHours = 160 }, new DeveloperReport { Id = 2, Name = "Dev2", Level = DeveloperLevel.Junior, HourlyRate = 20, WorkingHours = 120 }, new DeveloperReport { Id = 3, Name = "Dev3", Level = DeveloperLevel.Senior, HourlyRate = 32.5, WorkingHours = 130 }, new DeveloperReport { Id = 4, Name = "Dev4", Level = DeveloperLevel.Junior, HourlyRate = 24.5, WorkingHours = 140 } }; var calculatorContext = new SalaryCalculator(new JuniorDevSalaryCalculator()); var juniorTotal = calculatorContext.Calculate(reports); Console.WriteLine($"Total amount for junior salaries is: {juniorTotal}"); calculatorContext.SetCalculator(new SeniorDevSalaryCalculator()); var seniorTotal = calculatorContext.Calculate(reports); Console.WriteLine($"Total amount for senior salaries is: {seniorTotal}"); Console.WriteLine($"Total cost for all the salaries is: {juniorTotal + seniorTotal}"); Console.WriteLine("==========================================================================="); Console.WriteLine("================================== IoC ==============================="); BussinessLogic _bussinessLogic = new BussinessLogic(); _bussinessLogic.Task1(); Console.WriteLine("==========================================================================="); Console.WriteLine("================================== Flyweight ==============================="); // The client code usually creates a bunch of pre-populated // flyweights in the initialization stage of the application. var factory = new FlyweightFactory( new Car { Company = "Chevrolet", Model = "Camaro2018", Color = "pink" }, new Car { Company = "Mercedes Benz", Model = "C300", Color = "black" }, new Car { Company = "Mercedes Benz", Model = "C500", Color = "red" }, new Car { Company = "BMW", Model = "M5", Color = "red" }, new Car { Company = "BMW", Model = "X6", Color = "white" } ); factory.listFlyweights(); addCarToPoliceDatabase(factory, new Car { Number = "CL234IR", Owner = "James Doe", Company = "BMW", Model = "M5", Color = "red" }); addCarToPoliceDatabase(factory, new Car { Number = "CL234IR", Owner = "James Doe", Company = "BMW", Model = "X1", Color = "red" }); factory.listFlyweights(); Console.WriteLine("==========================================================================="); Console.WriteLine("================================== Proxy ==============================="); MathProxy _mathProxy = new MathProxy(); Console.Write("Input num1 and num2: "); var x = Convert.ToDouble(Console.ReadLine()); var y = Convert.ToDouble(Console.ReadLine()); Console.WriteLine($"{x} + {y} = {_mathProxy.Add(x, y)}"); Console.WriteLine($"{x} - {y} = {_mathProxy.Sub(x, y)}"); Console.WriteLine($"{x} * {y} = {_mathProxy.Mul(x, y)}"); Console.WriteLine($"{x} / {y} = {_mathProxy.Div(x, y)}"); Console.WriteLine("==========================================================================="); Console.WriteLine("================================== ProxyWithBank ==============================="); Credit _credit = new Credit(); bool Income = false; _credit.Cash(400, ref Income); Income = true; Console.WriteLine($"Income {_credit.Cash(5000000.0, ref Income)} vnd"); Income = false; Console.WriteLine($"Outcome {_credit.Cash(100000.0, ref Income)} vnd"); _credit.CheckAccount(); Console.WriteLine("-------------------------------------------------------------------------------"); Console.WriteLine("----------------------------------- Transfer ----------------------------------"); Console.WriteLine("----------------------------------- Local -------------------------------------"); Income = false; _credit.LocalTransfer(6000000.0, "VND", "01231111441", "8912121231", ref Income); Income = true; Console.WriteLine($" Income local: " + $"{_credit.LocalTransfer(700000.0, "VND", "719273981723", "1125412311", ref Income)}"); _credit.CheckAccount(); Income = false; Console.WriteLine($" Outcome local: " + $"{_credit.LocalTransfer(70000.0, "VND", "719273981723", "1125412311", ref Income)}"); _credit.CheckAccount(); Console.WriteLine("----------------------------------- Overcome ----------------------------------"); Income = true; Console.WriteLine($"Income overcome: " + $"{_credit.OvercomeTransfer(500, "USD", "VND", "113311131", "719273981723", ref Income)} VND"); _credit.CheckAccount(); Income = false; Console.WriteLine($"Outcome overcome TWD: " + $"{_credit.OvercomeTransfer(5000000.0, "VND", "TWD", "719273981723", "115533315441", ref Income)} TWD"); _credit.CheckAccount(); Console.WriteLine("================================ CompositePattern ====================================="); CompositePattern.IEmployee employee_0000 = new Cashier(0, "Thu Tran", 7000000); CompositePattern.IEmployee employee_0001 = new Cashier(1, "Khoi Nguyen", 7000000); CompositePattern.IEmployee employee_0010 = new BankManager(0, "Ning Chang", 9000000); employee_0010.Add(employee_0000); employee_0010.Add(employee_0001); employee_0010.Print(); Console.WriteLine("==========================================================================="); Console.WriteLine("================================== Stragery - Ver2 ==============================="); SortedList _studentRecords = new SortedList(); _studentRecords.Add("Samual"); _studentRecords.Add("Jimmy"); _studentRecords.Add("Sandra"); _studentRecords.Add("Vivek"); _studentRecords.Add("Anna"); Console.WriteLine("------------------------------------------------------------------------------------"); _studentRecords.SetSortStrategy(new QuickSort()); _studentRecords.Sort(); Console.WriteLine("------------------------------------------------------------------------------------"); _studentRecords.SetSortStrategy(new ShellSort()); _studentRecords.Sort(); Console.WriteLine("------------------------------------------------------------------------------------"); _studentRecords.SetSortStrategy(new MergeSort()); _studentRecords.Sort(); Console.WriteLine("==========================================================================="); Console.WriteLine("================================== Decorator ==============================="); Console.WriteLine("-------------------------------------------------------------------------------"); Book _book0000 = new Book("Worley", "Inside ASP.NET", 10); _book0000.Display(); Console.WriteLine("-------------------------------------------------------------------------------"); Video _video0000 = new Video("Winifred Hervey", "Steve Harvey Show", 1, 512); _video0000.Display(); Console.WriteLine("-------------------------------------------------------------------------------"); Borrowable _borrower0000 = new Borrowable(_book0000); _borrower0000.BorrowItem("Khoi Nguyen Tan"); _borrower0000.BorrowItem("Ning Chang"); Borrowable _borrower0001 = new Borrowable(_video0000); _borrower0001.BorrowItem("Thu Tran"); _borrower0001.BorrowItem("Nguyen Lam Bao Ngoc"); _borrower0000.Display(); _borrower0001.Display(); AlertStateContext stateContext = new AlertStateContext(); stateContext.alert(); stateContext.alert(); stateContext.SetState(new Silent()); stateContext.alert(); stateContext.alert(); stateContext.alert(); Console.WriteLine("==========================================================================="); Console.WriteLine("================================== AbstractFactoryVer2 ==============================="); Console.WriteLine("-------------------------------------------------------------------------------"); ///client class AnimalWorld animalWorld = new AnimalWorld(new AmericaFactory()); animalWorld.AnimalEatOthers(); animalWorld = new AnimalWorld(new AfricaFactory()); animalWorld.AnimalEatOthers(); Console.WriteLine("==========================================================================="); Console.WriteLine("================================== Template ==============================="); Console.WriteLine("-------------------------------------------------------------------------------"); Game game = new Cricket(); game.Play(); game = new Football(); game.Play(); DataAccessObject dataAccessObject = new Categories(); dataAccessObject.Run(); dataAccessObject = new Products(); dataAccessObject.Run(); Console.WriteLine("==========================================================================="); Console.WriteLine("================================== Adapter ==============================="); Console.WriteLine("-------------------------------------------------------------------------------"); var xmlConverter = new XmlConverter(); var adapter = new XmlToJsonAdapter(xmlConverter); adapter.ConvertXMLToJson(); Console.WriteLine("==========================================================================="); Console.WriteLine("================================== Template Ver 3 ==============================="); Console.WriteLine("-------------------------------------------------------------------------------"); DAO @object = new Person(); @object.Connect(); @object.GetAll(); @object.Process(); @object.Disconnect(); Console.WriteLine("==========================================================================="); Console.WriteLine("================================== ChainOfReposibility ==============================="); Console.WriteLine("-------------------------------------------------------------------------------"); // Setup Chain of Responsibility Approver larry = new Director(); Approver sam = new VicePresident(); Approver tammy = new President(); larry.SetSuccessor(sam); sam.SetSuccessor(tammy); // Generate and process purchase requests Purchase p = new Purchase(2034, 350.00, "Assets"); larry.ProcessRequest(p); p = new Purchase(2035, 32590.10, "Project X"); larry.ProcessRequest(p); p = new Purchase(2036, 122100.00, "Project Y"); larry.ProcessRequest(p); }