示例#1
0
    static void TossSalad(RussianSaladRepository rsr, SnowWhiteSaladRepository swr,
                          TomatoAndCucumberSaladRepository tcsr, CarrotAndCabbageSaladRepository ccr)
    {
        Random rnd = new Random();

        while (true)
        {
            switch (rnd.Next(1, 5))
            {
            case 1: {
                PrepareRussianSaladUseCase useCase = new PrepareRussianSaladUseCase(rsr);
                useCase.Run();
                break;
            }

            case 2: {
                PrepareSnowWhiteSaladUseCase useCase = new PrepareSnowWhiteSaladUseCase(swr);
                useCase.Run();
                break;
            }

            case 3: {
                PrepareTomatoAndCucumberSaladUseCase useCase = new PrepareTomatoAndCucumberSaladUseCase(tcsr);
                useCase.Run();
                break;
            }

            case 4: {
                PrepareCarrotAndCabbageSaladUseCase useCase = new PrepareCarrotAndCabbageSaladUseCase(ccr);
                useCase.Run();
                break;
            }
            }
        }
    }
示例#2
0
    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;
    }
示例#3
0
    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();
            }
        }
    }
示例#4
0
 public GetRussianSaladUseCase(RussianSaladRepository Repository) : base(Repository)
 {
 }
 public PrepareRussianSaladUseCase(RussianSaladRepository Repository) : base(Repository)
 {
 }