public void RepeatSameComponentTest() { var pizzaX = new Pizza(new List <string> { "pepperoni", "pepperoni", "pepperoni", "feta cheese" }); var pizzaY = new Pizza(new List <string> { "pepperoni", "pepperoni", "feta cheese" }); var pizzaZ = new Pizza(new List <string> { "feta cheese", "pepperoni", "pepperoni" }); var pizzaComparer = new PizzaComparer(); Assert.False(pizzaComparer.Equals(pizzaX, pizzaZ)); Assert.False(pizzaComparer.Equals(pizzaY, pizzaX)); Assert.True(pizzaComparer.Equals(pizzaZ, pizzaY)); Assert.True(pizzaComparer.Equals(pizzaY, pizzaZ)); }
public PizzaStatisticViewModel GetPizzaStatistics(IEnumerable <Pizza> pizzas) { var statistics = new PizzaStatisticViewModel(); var comparer = new PizzaComparer(); var types = pizzas.GroupBy(p => p, comparer).Select(g => new { Pizza = g.Key, Count = g.Count() }).ToList(); //pizzas.SelectMany(p => p.Toppings).GroupBy(p => p).Select(p => new { pizza = p.Key, count = p.Count() }) foreach (var type in types) { statistics.Orders.Add(new PizzaStatisticViewModel.PizzaOrder() { Pizza = type.Pizza, Total = type.Count }); } statistics.PizzasCount = pizzas.Count(); return(statistics); }