private void Polacz()
        {
            IEnumerable <Comic>       comics   = BuildCatalog();           //getting list of comics
            Dictionary <int, decimal> values   = GetPrices();              //getting prices
            IEnumerable <Purchases>   purchase = Purchases.FindPurchase(); //getting purchases list
            var results =
                from comic in comics
                join buy in purchase
                on comic.Issue equals buy.Issue //checking if any of issues are same and getting em if same
                orderby comic.Issue ascending
                select new
            {    //creating object
                Comic       = comic,
                Price       = buy.Price,
                Title       = comic.Name,
                Subtitle    = "Numer " + comic.Issue,
                Description = String.Format("Kupiony za {0:c}", buy.Price),
                Image       = CreateImageFromAssets("yah643x900"),
            };
            decimal listvalue  = 0;
            decimal totalspent = 0;

            //how much was spent on new comics.
            foreach (var result in results)
            {
                listvalue  += values[result.Comic.Issue];
                totalspent += result.Price;
                CurrenQueryResults.Add(result);
            }
            Title = String.Format("Wydane zostalo {0:c} na komiksy warte {1:c}", totalspent, listvalue);
        }
 private void AllComics()
 {
     foreach (Comic comic in BuildCatalog())
     {//creating list of all comics
         var result = new
         {
             Image       = CreateImageFromAssets("new_grah1920x1080.jpg"),
             Title       = comic.Name,
             Subtitle    = "Numer " + comic.Issue,
             Description = ":(",
             Comic       = comic,
         };
         CurrenQueryResults.Add(result); //adding results to result list view
     }
 }
        private void CheapComics()
        {//working same as ExpensiveComics method, difference is that we are getting here to results all comics < 500
            IEnumerable <Comic>       comics = BuildCatalog();
            Dictionary <int, decimal> values = GetPrices();

            var mostExpensive = from comIc in comics

                                where values[comIc.Issue] < 500
                                orderby values[comIc.Issue] descending
                                select comIc;


            foreach (Comic comic in mostExpensive)
            {
                CurrenQueryResults.Add(
                    new
                {
                    Title = string.Format("{0} jest wart {1:c} ", comic.Name, values[comic.Issue]),
                    Image = CreateImageFromAssets("new_grah1920x1080.jpg"),
                });
            }
        }
        //getting comics that are above 500
        private void ExpensiveComics()
        {
            IEnumerable <Comic>       comics = BuildCatalog(); //getting list with comics
            Dictionary <int, decimal> values = GetPrices();    //getting dict with prices

            var mostExpensive = from comIc in comics

                                where values[comIc.Issue] > 500 //selectin all with value > 500
                                orderby values[comIc.Issue] descending
                                select comIc;


            foreach (Comic comic in mostExpensive)
            {
                CurrenQueryResults.Add(
                    new
                {    //adding elements of mostExpensive to result listView collection
                    Title = string.Format("{0} jest wart {1:c} ", comic.Name, values[comic.Issue]),
                    Image = CreateImageFromAssets("new_grah1920x1080.jpg"),
                });
            }
        }
        private void GroupByPrice()
        {
            Dictionary <int, decimal> values = GetPrices();
            var priceGroups =
                from pair in values
                group pair.Key by Purchases.EvaluatePrice((int)pair.Value)//checking if they are expsnive or cheap or maybe midrange
                into priceGroup
                orderby priceGroup.Key descending
                select priceGroup;

            foreach (var group in priceGroups)
            {
                string message = String.Format("Found {0} {1} komiksow numery ", group.Count(), group.Key.ToString());

                foreach (var issue in group)
                {//creating new objects on result
                    message += issue.ToString() + " ";
                    CurrenQueryResults.Add(CreateAnonymousListViewItem(message)
                                           );
                }
            }
        }