private void AggregateData()
        {
            foreach (IItem item in PawnItems)
            {
                bool isGold = false;
                if (item is ScrapItem)
                {
                    ScrapItem scrap = item as ScrapItem;
                    if (_listGoldTypes.Contains(scrap.TypeOfMetal))
                    {
                        isGold = true;
                    }
                    // Have we added this type of ScrapItem to _aggData yet?
                    var results = from a in _aggData
                                  where a.IsGold == isGold &&
                                  a.TypeOfMetal == scrap.TypeOfMetal &&
                                  a.ApproximateKarats == (scrap.ApproximateKarats + "K")
                                  select a;

                    AggScrapItemInfo info;
                    if (results.Any())
                    {
                        // Increment existing _aggData Cost and Weight values.
                        info         = results.First();
                        info.Cost   += scrap.ItemAmount;
                        info.Weight += Convert.ToDecimal(scrap.ApproximateWeight);
                    }
                    else
                    {
                        // Add ScrapItem to _aggData since not added yet.
                        info                   = new AggScrapItemInfo();
                        info.IsGold            = isGold;
                        info.TypeOfMetal       = scrap.TypeOfMetal;
                        info.ApproximateKarats = scrap.ApproximateKarats + "K";
                        info.Weight            = Convert.ToDecimal(scrap.ApproximateWeight);
                        info.Cost              = scrap.ItemAmount;
                        _aggData.Add(info);
                    }
                } //end if (item is ScrapItem)
            }     //end foreach (PawnItems)
        }
        private void AggregateData()
        {
            if (_trnsfrItems == null)
            {
                return;
            }

            bool isGold;

            foreach (IItem item in _trnsfrItems)
            {
                isGold = false;
                if (item is ScrapItem)
                {
                    AggScrapItemInfo info;

                    if (_listGoldTypes.Contains(((ScrapItem)item).TypeOfMetal))
                    {
                        isGold = true;
                    }

                    var results = from a in _aggData
                                  where a.IsGold == isGold &&
                                  a.TypeOfMetal == ((ScrapItem)item).TypeOfMetal &&
                                  a.ApproximateKarats == (((ScrapItem)item).ApproximateKarats + "K")
                                  select a;

                    if (results.Count() > 0)
                    {
                        info       = results.First <AggScrapItemInfo>();
                        info.Cost += item.ItemAmount;
                        try
                        {
                            info.Weight += Convert.ToDecimal(((ScrapItem)item).ApproximateWeight);
                        }
                        catch (Exception)
                        {
                            info.Weight = 0;
                        }
                    }
                    else
                    {
                        info                   = new AggScrapItemInfo();
                        info.IsGold            = isGold;
                        info.TypeOfMetal       = ((ScrapItem)item).TypeOfMetal;
                        info.ApproximateKarats = ((ScrapItem)item).ApproximateKarats + "K";
                        try// handle for formatting error
                        {
                            info.Weight = ((ScrapItem)item).ApproximateWeight == null
                                                  ? 0 : Convert.ToDecimal(((ScrapItem)item).ApproximateWeight);
                        }
                        catch (Exception)
                        {
                            info.Weight = 0;
                        }
                        info.Cost = item.ItemAmount;
                        _aggData.Add(info);
                    }
                }
            }
        }