static void CookMeat(MeatloafRepository mr, SteakRepository sr, BurgerRepository br) { Random rnd = new Random(); while (true) { switch (rnd.Next(1, 4)) { case 1: { PrepareMeatloafUseCase useCase = new PrepareMeatloafUseCase(mr); useCase.Run(); break; } case 2: { PrepareBurgerUseCase useCase = new PrepareBurgerUseCase(br); useCase.Run(); break; } case 3: { PrepareSteakUseCase useCase = new PrepareSteakUseCase(sr); useCase.Run(); break; } } } }
public SalesControllers(MeatloafRepository mr, SteakRepository sr, BurgerRepository br, WhiteBreadRepository wbr, WholeGrainBreadRepository wgbr, RussianSaladRepository rsr, SnowWhiteSaladRepository swsr, TomatoAndCucumberSaladRepository tcsr, CarrotAndCabbageSaladRepository ccsr) { MeatloafRepository = mr; SteakRepository = sr; BurgerRepository = br; WhiteBreadRepository = wbr; WholeGrainBreadRepository = wgbr; RussianSaladRepository = rsr; SnowWhiteSaladRepository = swsr; TomatoAndCucumberSaladRepository = tcsr; CarrotAndCabbageSaladRepository = ccsr; }
private static void TakeOrders(MeatloafRepository meatloafRepository, SteakRepository steakRepository, BurgerRepository burgerRepository, WhiteBreadRepository whiteBreadRepository, WholeGrainBreadRepository wholeGrainBreadRepository, RussianSaladRepository russianSaladRepository, SnowWhiteSaladRepository snowWhiteSaladRepository, TomatoAndCucumberSaladRepository tomatoAndCucumberSaladRepository, CarrotAndCabbageSaladRepository carrotAndCabbageSaladRepository) { while (true) { if (orders.Count > 0) { Order order = orders.Dequeue(); Product bread = null; switch (order.BreadOrder) { case Order.Bread.WhiteBread: { GetWhiteBreadUseCase useCase = new GetWhiteBreadUseCase(whiteBreadRepository); bread = useCase.Run(); break; } case Order.Bread.WholeGrainBread: { GetWholeGrainBreadUseCase useCase = new GetWholeGrainBreadUseCase(wholeGrainBreadRepository); bread = useCase.Run(); break; } } Product meat = null; switch (order.MeatOrder) { case Order.Meat.Meatloaf: { GetMeatloafUseCase useCase = new GetMeatloafUseCase(meatloafRepository); meat = useCase.Run(); break; } case Order.Meat.Steak: { GetSteakUseCase useCase = new GetSteakUseCase(steakRepository); meat = useCase.Run(); break; } case Order.Meat.Burger: { GetBurgerUseCase useCase = new GetBurgerUseCase(burgerRepository); meat = useCase.Run(); break; } } Product salad = null; switch (order.SaladOrder) { case Order.Salad.RussianSalad: { GetRussianSaladUseCase useCase = new GetRussianSaladUseCase(russianSaladRepository); salad = useCase.Run()[0]; break; } case Order.Salad.SnowWhiteSalad: { GetSnowWhiteSaladUseCase useCase = new GetSnowWhiteSaladUseCase(snowWhiteSaladRepository); salad = useCase.Run()[0]; break; } case Order.Salad.TomatoesAndCucumberSalad: { GetTomatoAndCucumberSaladUseCase useCase = new GetTomatoAndCucumberSaladUseCase(tomatoAndCucumberSaladRepository); salad = useCase.Run()[0]; break; } case Order.Salad.CarrortsAndCabbageSalad: { GetCarrotAndCabbageSaladUseCase useCase = new GetCarrotAndCabbageSaladUseCase(carrotAndCabbageSaladRepository); salad = useCase.Run()[0]; break; } } CompletedOrder completedOrder = new CompletedOrder(meat, bread, salad); WriteOrderLogUseCase writeOrderLogUse = new WriteOrderLogUseCase(completedOrder); writeOrderLogUse.Run(); } } }
public GetMeatloafUseCase(MeatloafRepository Repository) : base(Repository) { }
public PrepareMeatloafUseCase(MeatloafRepository Repository) : base(Repository) { }