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"); } } }
public AddSausage(Sausage sausage) : base(sausage) { }
public SausageDecorator(Sausage sausage) { _sausage = sausage; }
public abstract void ApplySausage(SausageDecorator decorator, Sausage sausage);