private static Order GetOrder(ColaType colaType, int quantity) { Console.WriteLine(MessageLookup.ENTER_USERNAME); string username = Console.ReadLine(); Console.WriteLine(MessageLookup.ENTER_PASSWORD); string password = Console.ReadLine(); var colasOrdered = Colas.Take(quantity).ToList(); var totalColaCount = Colas.Count(c => c.ColaType == colaType); //Contract.Requires<InvalidOperationException>(colasOrdered.Count < totalColaCount, ErrorMessageLookup.LOW_COLA); if (colasOrdered.Count > totalColaCount) { throw new InvalidOperationException(ErrorMessageLookup.LOW_COLA); } var money = new Money(0); foreach (var cola in colasOrdered) { money = money + cola.Price; } var order = new Order(Gateway.Pay(username, password, money), colasOrdered); foreach (var item in colasOrdered) { Colas.Remove(item); } return(order); }
public Cola(Money price, ColaType colaType) { this.ColaType = colaType; this.Price = price; }