public string HandleOrder(CustomerOrder order, decimal payment) { if (!IsSufficientPayment(order, payment)) { var shortfall = _priceList.Drinks[order.Item] - payment; return(_translator.ConvertMessage(shortfall)); } if (_checker.isEmpty(order.Item.ToString())) { _notifier.NotifyMissingDrink(order.Item.ToString()); return(_translator.ConvertMessage(order.Item.ToString())); } _salesRegister.AddSales(order.Item); return(_translator.TranslateOrder(order)); }
public static string CreateDrink(string order) { string[] ingredients = order.Split(':'); // Check is machine is empty if (checker.IsEmpty(ingredients[0])) { notifier.NotifyMissingDrink(order); return("No more drinks avaible"); } StringBuilder stringBuilder = new StringBuilder("Drink maker "); // Adding drink switch (ingredients[0]) { case "C": stringBuilder.Append("makes 1 coffee "); report.NbCoffee++; break; case "Ch": stringBuilder.Append("will make an extra hot coffee "); report.NbHotCoffee++; break; case "O": report.NbOrangeJuice++; return(stringBuilder.Append("will make one orange juice").ToString()); case "T": report.NbTea++; stringBuilder.Append("makes 1 tea "); break; case "H": report.NbChocolate++; stringBuilder.Append("makes 1 chocolate "); break; case "Hh": report.NbHotChocolate++; stringBuilder.Append("will make an extra hot chocolate "); break; case "Th": report.NbHotTea++; stringBuilder.Append("will make an extra hot tea "); break; default: return("Bad order"); } // Adding sugar int nbSugar = 0; Int32.TryParse(ingredients[1], out nbSugar); if (ingredients[0].Length > 1) { stringBuilder.Append("with " + numbers[nbSugar] + " sugar"); } else if (nbSugar > 0) { stringBuilder.Append("with " + nbSugar + " sugar" + ((nbSugar > 1)? "s" : "")); } else { stringBuilder.Append("with no sugar"); } // Adding stick if (ingredients[2] == "0") { stringBuilder.Append(" and a stick"); } else if (ingredients[0].Length < 2) { stringBuilder.Append(" and no stick"); } return(stringBuilder.ToString()); }