コード例 #1
0
ファイル: Program.cs プロジェクト: GLewKK/TempTMPS
        public override void ApplySausage(SausageDecorator decorator, Sausage sausage)
        {
            var validator           = new SausageValidator();
            var vegetablesValidator = new VegetablesValidator();

            var command = new SetNextCommand(vegetablesValidator);

            command.Execute(validator);


            if (validator.IsValid(pizza.SausageTypeList.Sausages).HasValue)
            {
                if (validator.IsValid(pizza.SausageTypeList.Sausages).Value)
                {
                    if (decorator is AddSausage)
                    {
                        pizza.SausageTypeList.Sausages.Add(sausage);
                        SausageDecorator sausageDecorator = new AddSausage(sausage);
                        pizza.SausageTypeList.TotalCost = sausageDecorator.GetCost();
                    }

                    if (decorator is RemoveSausage)
                    {
                        if (pizza.SausageTypeList.Sausages.Any(x => x.SausageType.Equals(sausage.SausageType)))
                        {
                            pizza.SausageTypeList.Sausages.Remove(sausage);
                            SausageDecorator sausageDecorator = new RemoveSausage(sausage);
                            pizza.SausageTypeList.TotalCost = sausageDecorator.GetCost();
                        }
                    }
                }
                else
                {
                    Console.WriteLine("Value is not valid");
                }
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: GLewKK/TempTMPS
 public abstract void ApplySausage(SausageDecorator decorator, Sausage sausage);