Example #1
0
        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));
        }
Example #2
0
        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);
        }