Esempio n. 1
0
        public static void ShowReport(Movie movie)
        {
            ExpenseReport report = new ExpenseReport(movie.Budget);

            // possibly less confusing than using LINQ Cast method
            List <IExpenseItem> cast = new List <IExpenseItem>();

            cast.AddRange(movie.Cast);
            report.AddLineItem("Cast", cast);

            var groups = movie.Crew.GroupBy(cm => cm.Title);

            foreach (var group in groups)
            {
                List <IExpenseItem> crewGroup = new List <IExpenseItem>();
                crewGroup.AddRange(group);
                report.AddLineItem(group.Key, crewGroup);
            }

            List <IExpenseItem> shoots = new List <IExpenseItem>();

            shoots.AddRange(movie.Shoots);
            report.AddLineItem("Filming Locations", shoots);

            Console.WriteLine(report.GetBreakdown());

            Console.WriteLine("\nPress <Enter> to return to main menu");
            Console.ReadLine();
            Console.Clear();
        }