80 lines
1.6 KiB
D
80 lines
1.6 KiB
D
|
module waitress;
|
||
|
|
||
|
import menu, iterator, menuitem;
|
||
|
import std.stdio : writeln, write;
|
||
|
|
||
|
class Waitress
|
||
|
{
|
||
|
private Menu dinerMenu;
|
||
|
|
||
|
this(Menu dinerMenu)
|
||
|
{
|
||
|
this.dinerMenu = dinerMenu;
|
||
|
}
|
||
|
|
||
|
void printMenu()
|
||
|
{
|
||
|
writeln("MENU\n----\nLUNCH");
|
||
|
printMenu(dinerMenu.createIterator());
|
||
|
}
|
||
|
|
||
|
private void printMenu(Iterator iterator)
|
||
|
{
|
||
|
while (iterator.hasNext())
|
||
|
{
|
||
|
MenuItem menuItem = iterator.next();
|
||
|
write(menuItem.getName(), ", ");
|
||
|
write(menuItem.getPrice(), " -- ");
|
||
|
writeln(menuItem.getDescription());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void printVegetarianMenu()
|
||
|
{
|
||
|
writeln("MENU\n----\nVEGETARIAN");
|
||
|
printVegetarianMenu(dinerMenu.createIterator());
|
||
|
}
|
||
|
|
||
|
// bool isItemVegetarian(string name)
|
||
|
// {
|
||
|
// Iterator dinnerIterator = dinerMenu.createIterator();
|
||
|
// if (isVegetarian(name, dinnerIterator))
|
||
|
// {
|
||
|
// return true;
|
||
|
// }
|
||
|
|
||
|
// return false;
|
||
|
// }
|
||
|
|
||
|
|
||
|
private void printVegetarianMenu(Iterator iterator)
|
||
|
{
|
||
|
while (iterator.hasNext())
|
||
|
{
|
||
|
MenuItem menuItem = iterator.next();
|
||
|
if (menuItem.isVegetarian())
|
||
|
{
|
||
|
write(menuItem.getName());
|
||
|
writeln("\t\t", menuItem.getPrice());
|
||
|
writeln("\t", menuItem.getDescription());
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// private bool isVegetarian(string name, Iterator iterator)
|
||
|
// {
|
||
|
// while (iterator.hasNext())
|
||
|
// {
|
||
|
// MenuItem menuItem = iterator.next();
|
||
|
// if (menuItem.getName() == name)
|
||
|
// {
|
||
|
// if (menuItem.isVegetarian())
|
||
|
// {
|
||
|
// return true;
|
||
|
// }
|
||
|
// }
|
||
|
// }
|
||
|
// return false;
|
||
|
// }
|
||
|
}
|