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 abstract void ApplySausage(SausageDecorator decorator, Sausage sausage);