Example #1
0
        static void Main(string[] args)
        {
            //Creating demo gift
            Gift       gift    = new Gift();
            GiftBilder builder = new GiftBilder(gift);

            builder.Build();

            gift.RecalculateWeight();
            Console.WriteLine("==============================================");
            Console.WriteLine("Gift summary:");
            Console.WriteLine("");
            Console.WriteLine(String.Format("Name: {0}", gift.Name));
            Console.WriteLine(String.Format("Article: {0}", gift.ProductArticle));
            Console.WriteLine(String.Format("Contains: {0} items", gift.Count));
            Console.WriteLine(String.Format("Weight: {0}", gift.Weight));

            //Sorting candies in the gift by weight
            Console.WriteLine("");
            Console.WriteLine("==============================================");
            Console.WriteLine("Candies ordered by weight:");
            Console.WriteLine("");
            IEnumerable <IItem> candiesByWeight = gift.Where(i => i is ICandy).OrderBy(c => c.Weight);

            foreach (IItem item in candiesByWeight)
            {
                Console.WriteLine("Name \"{0}\" weight: {1}", item.FullName, item.Weight);
            }

            //Sorting items in the gift by name
            Console.WriteLine("");
            Console.WriteLine("==============================================");
            Console.WriteLine("All items sorted by name:");
            Console.WriteLine("");
            IEnumerable <IItem> sortedItems = gift.SortItemsByName();

            foreach (IItem item in sortedItems)
            {
                Console.WriteLine("{0}", item.Name);
            }

            //Find by range of sugar content
            Console.WriteLine("");
            Console.WriteLine("==============================================");
            Console.WriteLine("Items with the sugar 50-150:");
            Console.WriteLine("");
            IEnumerable <IItem> itemsWithSugar = gift.FindBySugarContent(50, 150);

            foreach (IItem item in itemsWithSugar)
            {
                Console.WriteLine(item.GetInfo());
            }

            Console.ReadKey();
        }