using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Collections.Generic;

namespace C1Extended_Demo
{
    public class Product : INotifyPropertyChanged
    {
        // Fields
        private string _productNumber;
        private string _name;
        private double _standardCost;
        private int _modelID;
        private int _subcategory;
        private string _description;

        // Events
        public event PropertyChangedEventHandler PropertyChanged;

        // Properties
        [Display(Name = "Number", Order = 1, Description = "Product Number.")]
        public string ProductNumber
        {
            get { return _productNumber; }
            set
            {
                _productNumber = value;
                if (PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("ProductNumber"));
            }
        }

        [Display(Order = 0, Description = "Product Name.")]
        public string Name
        {
            get { return _name; }
            set
            {
                _name = value;
                if (PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("Name"));
            }
        }

        [Display(Name = "Cost", Order = 3, Description = "Standard Cost.")]
        public double StandardCost
        {
            get { return _standardCost; }
            set
            {
                _standardCost = value;
                if (PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("StandardCost"));
            }
        }

        [Display(Name = "Model", Order = 2, Description = "Model ID.")]
        public int ModelID
        {
            get { return _modelID; }
            set
            {
                _modelID = value;
                if (PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("ModelID"));
            }
        }

        [Display(Order = 4, Description = "Subcategory ID.")]
        public int Subcategory
        {
            get { return _subcategory; }
            set
            {
                _subcategory = value;
                if (PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("Subcategory"));
            }
        }

        [Display(Order = 5, Description = "Product description.")]
        [DefaultValue("<Insert description here>")]
        public string Description
        {
            get { return _description; }
            set
            {
                _description = value;
                if (PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("Description"));
            }
        }
    }

    public class ProductsData
    {
        public static List<Product> GetProducts()
        {
            List<Product> _products = new List<Product>();

            _products.Add(new Product() { ProductNumber = "FR-R92B-58", Name = "HL Road Frame - Black, 58", StandardCost = 1059.31, ModelID = 6, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R92R-58", Name = "HL Road Frame - Red, 58", StandardCost = 1059.31, ModelID = 6, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "HL-U509-R", Name = "Sport-100 Helmet, Red", StandardCost = 13.0863, ModelID = 33, Subcategory = 31 });
            _products.Add(new Product() { ProductNumber = "HL-U509", Name = "Sport-100 Helmet, Black", StandardCost = 13.0863, ModelID = 33, Subcategory = 31 });
            _products.Add(new Product() { ProductNumber = "SO-B909-M", Name = "Mountain Bike Socks, M", StandardCost = 3.3963, ModelID = 18, Subcategory = 23 });
            _products.Add(new Product() { ProductNumber = "SO-B909-L", Name = "Mountain Bike Socks, L", StandardCost = 3.3963, ModelID = 18, Subcategory = 23 });
            _products.Add(new Product() { ProductNumber = "HL-U509-B", Name = "Sport-100 Helmet, Blue", StandardCost = 13.0863, ModelID = 33, Subcategory = 31 });
            _products.Add(new Product() { ProductNumber = "CA-1098", Name = "AWC Logo Cap", StandardCost = 6.9223, ModelID = 2, Subcategory = 19 });
            _products.Add(new Product() { ProductNumber = "LJ-0192-S", Name = "Long-Sleeve Logo Jersey, S", StandardCost = 38.4923, ModelID = 11, Subcategory = 21 });
            _products.Add(new Product() { ProductNumber = "LJ-0192-M", Name = "Long-Sleeve Logo Jersey, M", StandardCost = 38.4923, ModelID = 11, Subcategory = 21 });
            _products.Add(new Product() { ProductNumber = "LJ-0192-L", Name = "Long-Sleeve Logo Jersey, L", StandardCost = 38.4923, ModelID = 11, Subcategory = 21 });
            _products.Add(new Product() { ProductNumber = "LJ-0192-X", Name = "Long-Sleeve Logo Jersey, XL", StandardCost = 38.4923, ModelID = 11, Subcategory = 21 });
            _products.Add(new Product() { ProductNumber = "FR-R92R-62", Name = "HL Road Frame - Red, 62", StandardCost = 868.6342, ModelID = 6, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R92R-44", Name = "HL Road Frame - Red, 44", StandardCost = 868.6342, ModelID = 6, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R92R-48", Name = "HL Road Frame - Red, 48", StandardCost = 868.6342, ModelID = 6, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R92R-52", Name = "HL Road Frame - Red, 52", StandardCost = 868.6342, ModelID = 6, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R92R-56", Name = "HL Road Frame - Red, 56", StandardCost = 868.6342, ModelID = 6, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R38B-58", Name = "LL Road Frame - Black, 58", StandardCost = 204.6251, ModelID = 9, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R38B-60", Name = "LL Road Frame - Black, 60", StandardCost = 204.6251, ModelID = 9, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R38B-62", Name = "LL Road Frame - Black, 62", StandardCost = 204.6251, ModelID = 9, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R38R-44", Name = "LL Road Frame - Red, 44", StandardCost = 187.1571, ModelID = 9, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R38R-48", Name = "LL Road Frame - Red, 48", StandardCost = 187.1571, ModelID = 9, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R38R-52", Name = "LL Road Frame - Red, 52", StandardCost = 187.1571, ModelID = 9, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R38R-58", Name = "LL Road Frame - Red, 58", StandardCost = 187.1571, ModelID = 9, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R38R-60", Name = "LL Road Frame - Red, 60", StandardCost = 187.1571, ModelID = 9, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R38R-62", Name = "LL Road Frame - Red, 62", StandardCost = 187.1571, ModelID = 9, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R72R-44", Name = "ML Road Frame - Red, 44", StandardCost = 352.1394, ModelID = 16, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R72R-48", Name = "ML Road Frame - Red, 48", StandardCost = 352.1394, ModelID = 16, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R72R-52", Name = "ML Road Frame - Red, 52", StandardCost = 352.1394, ModelID = 16, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R72R-58", Name = "ML Road Frame - Red, 58", StandardCost = 352.1394, ModelID = 16, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R72R-60", Name = "ML Road Frame - Red, 60", StandardCost = 352.1394, ModelID = 16, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R38B-44", Name = "LL Road Frame - Black, 44", StandardCost = 204.6251, ModelID = 9, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R38B-48", Name = "LL Road Frame - Black, 48", StandardCost = 204.6251, ModelID = 9, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R38B-52", Name = "LL Road Frame - Black, 52", StandardCost = 204.6251, ModelID = 9, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-M94S-42", Name = "HL Mountain Frame - Silver, 42", StandardCost = 747.2002, ModelID = 5, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M94S-44", Name = "HL Mountain Frame - Silver, 44", StandardCost = 706.811, ModelID = 5, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M94S-52", Name = "HL Mountain Frame - Silver, 48", StandardCost = 706.811, ModelID = 5, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M94S-46", Name = "HL Mountain Frame - Silver, 46", StandardCost = 747.2002, ModelID = 5, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M94B-42", Name = "HL Mountain Frame - Black, 42", StandardCost = 739.041, ModelID = 5, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M94B-44", Name = "HL Mountain Frame - Black, 44", StandardCost = 699.0928, ModelID = 5, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M94B-48", Name = "HL Mountain Frame - Black, 48", StandardCost = 699.0928, ModelID = 5, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M94B-46", Name = "HL Mountain Frame - Black, 46", StandardCost = 739.041, ModelID = 5, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M94B-38", Name = "HL Mountain Frame - Black, 38", StandardCost = 739.041, ModelID = 5, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M94S-38", Name = "HL Mountain Frame - Silver, 38", StandardCost = 747.2002, ModelID = 5, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FK-1639", Name = "LL Fork", StandardCost = 65.8097, ModelID = 104, Subcategory = 10 });
            _products.Add(new Product() { ProductNumber = "FK-5136", Name = "ML Fork", StandardCost = 77.9176, ModelID = 105, Subcategory = 10 });
            _products.Add(new Product() { ProductNumber = "FK-9939", Name = "HL Fork", StandardCost = 101.8936, ModelID = 106, Subcategory = 10 });
            _products.Add(new Product() { ProductNumber = "HS-0296", Name = "LL Headset", StandardCost = 15.1848, ModelID = 59, Subcategory = 11 });
            _products.Add(new Product() { ProductNumber = "HS-2451", Name = "ML Headset", StandardCost = 45.4168, ModelID = 60, Subcategory = 11 });
            _products.Add(new Product() { ProductNumber = "HS-3479", Name = "HL Headset", StandardCost = 55.3801, ModelID = 61, Subcategory = 11 });
            _products.Add(new Product() { ProductNumber = "HB-M243", Name = "LL Mountain Handlebars", StandardCost = 19.7758, ModelID = 52, Subcategory = 4 });
            _products.Add(new Product() { ProductNumber = "HB-M763", Name = "ML Mountain Handlebars", StandardCost = 27.4925, ModelID = 54, Subcategory = 4 });
            _products.Add(new Product() { ProductNumber = "HB-M918", Name = "HL Mountain Handlebars", StandardCost = 53.3999, ModelID = 55, Subcategory = 4 });
            _products.Add(new Product() { ProductNumber = "HB-R504", Name = "LL Road Handlebars", StandardCost = 19.7758, ModelID = 56, Subcategory = 4 });
            _products.Add(new Product() { ProductNumber = "HB-R720", Name = "ML Road Handlebars", StandardCost = 27.4925, ModelID = 57, Subcategory = 4 });
            _products.Add(new Product() { ProductNumber = "HB-R956", Name = "HL Road Handlebars", StandardCost = 53.3999, ModelID = 58, Subcategory = 4 });
            _products.Add(new Product() { ProductNumber = "FR-M63B-38", Name = "ML Mountain Frame - Black, 38", StandardCost = 185.8193, ModelID = 15, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FW-M423", Name = "LL Mountain Front Wheel", StandardCost = 26.9708, ModelID = 42, Subcategory = 17 });
            _products.Add(new Product() { ProductNumber = "FW-M762", Name = "ML Mountain Front Wheel", StandardCost = 92.8071, ModelID = 45, Subcategory = 17 });
            _products.Add(new Product() { ProductNumber = "FW-M928", Name = "HL Mountain Front Wheel", StandardCost = 133.2955, ModelID = 46, Subcategory = 17 });
            _products.Add(new Product() { ProductNumber = "FW-R623", Name = "LL Road Front Wheel", StandardCost = 37.9909, ModelID = 49, Subcategory = 17 });
            _products.Add(new Product() { ProductNumber = "FW-R762", Name = "ML Road Front Wheel", StandardCost = 110.2829, ModelID = 50, Subcategory = 17 });
            _products.Add(new Product() { ProductNumber = "FW-R820", Name = "HL Road Front Wheel", StandardCost = 146.5466, ModelID = 51, Subcategory = 17 });
            _products.Add(new Product() { ProductNumber = "FW-T905", Name = "Touring Front Wheel", StandardCost = 96.7964, ModelID = 44, Subcategory = 17 });
            _products.Add(new Product() { ProductNumber = "FR-R72Y-38", Name = "ML Road Frame-W - Yellow, 38", StandardCost = 360.9428, ModelID = 17, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "RW-M423", Name = "LL Mountain Rear Wheel", StandardCost = 38.9588, ModelID = 123, Subcategory = 17 });
            _products.Add(new Product() { ProductNumber = "RW-M762", Name = "ML Mountain Rear Wheel", StandardCost = 104.7951, ModelID = 124, Subcategory = 17 });
            _products.Add(new Product() { ProductNumber = "RW-M928", Name = "HL Mountain Rear Wheel", StandardCost = 145.2835, ModelID = 125, Subcategory = 17 });
            _products.Add(new Product() { ProductNumber = "RW-R623", Name = "LL Road Rear Wheel", StandardCost = 49.9789, ModelID = 126, Subcategory = 17 });
            _products.Add(new Product() { ProductNumber = "RW-R762", Name = "ML Road Rear Wheel", StandardCost = 122.2709, ModelID = 77, Subcategory = 17 });
            _products.Add(new Product() { ProductNumber = "RW-R820", Name = "HL Road Rear Wheel", StandardCost = 158.5346, ModelID = 78, Subcategory = 17 });
            _products.Add(new Product() { ProductNumber = "RW-T905", Name = "Touring Rear Wheel", StandardCost = 108.7844, ModelID = 43, Subcategory = 17 });
            _products.Add(new Product() { ProductNumber = "FR-M63B-40", Name = "ML Mountain Frame - Black, 40", StandardCost = 185.8193, ModelID = 14, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M63B-44", Name = "ML Mountain Frame - Black, 44", StandardCost = 185.8193, ModelID = 14, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M63B-48", Name = "ML Mountain Frame - Black, 48", StandardCost = 185.8193, ModelID = 14, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-R72Y-40", Name = "ML Road Frame-W - Yellow, 40", StandardCost = 360.9428, ModelID = 17, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R72Y-42", Name = "ML Road Frame-W - Yellow, 42", StandardCost = 360.9428, ModelID = 17, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R72Y-44", Name = "ML Road Frame-W - Yellow, 44", StandardCost = 360.9428, ModelID = 17, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R72Y-48", Name = "ML Road Frame-W - Yellow, 48", StandardCost = 360.9428, ModelID = 17, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R92B-62", Name = "HL Road Frame - Black, 62", StandardCost = 868.6342, ModelID = 6, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R92B-44", Name = "HL Road Frame - Black, 44", StandardCost = 868.6342, ModelID = 6, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R92B-48", Name = "HL Road Frame - Black, 48", StandardCost = 868.6342, ModelID = 6, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "FR-R92B-52", Name = "HL Road Frame - Black, 52", StandardCost = 868.6342, ModelID = 6, Subcategory = 14 });
            _products.Add(new Product() { ProductNumber = "SH-M897-S", Name = "Men's Sports Shorts, S", StandardCost = 24.7459, ModelID = 13, Subcategory = 22 });
            _products.Add(new Product() { ProductNumber = "PA-T100", Name = "Touring-Panniers, Large", StandardCost = 51.5625, ModelID = 120, Subcategory = 35 });
            _products.Add(new Product() { ProductNumber = "LO-C100", Name = "Cable Lock", StandardCost = 10.3125, ModelID = 115, Subcategory = 34 });
            _products.Add(new Product() { ProductNumber = "PU-0452", Name = "Minipump", StandardCost = 8.2459, ModelID = 116, Subcategory = 36 });
            _products.Add(new Product() { ProductNumber = "PU-M044", Name = "Mountain Pump", StandardCost = 10.3084, ModelID = 117, Subcategory = 36 });
            _products.Add(new Product() { ProductNumber = "LT-T990", Name = "Taillights - Battery-Powered", StandardCost = 5.7709, ModelID = 108, Subcategory = 33 });
            _products.Add(new Product() { ProductNumber = "LT-H902", Name = "Headlights - Dual-Beam", StandardCost = 14.4334, ModelID = 109, Subcategory = 33 });
            _products.Add(new Product() { ProductNumber = "LT-H903", Name = "Headlights - Weatherproof", StandardCost = 18.5584, ModelID = 110, Subcategory = 33 });
            _products.Add(new Product() { ProductNumber = "SH-M897-M", Name = "Men's Sports Shorts, M", StandardCost = 24.7459, ModelID = 13, Subcategory = 22 });
            _products.Add(new Product() { ProductNumber = "SH-M897-L", Name = "Men's Sports Shorts, L", StandardCost = 24.7459, ModelID = 13, Subcategory = 22 });
            _products.Add(new Product() { ProductNumber = "SH-M897-X", Name = "Men's Sports Shorts, XL", StandardCost = 24.7459, ModelID = 13, Subcategory = 22 });
            _products.Add(new Product() { ProductNumber = "TG-W091-S", Name = "Women's Tights, S", StandardCost = 30.9334, ModelID = 38, Subcategory = 24 });
            _products.Add(new Product() { ProductNumber = "TG-W091-M", Name = "Women's Tights, M", StandardCost = 30.9334, ModelID = 38, Subcategory = 24 });
            _products.Add(new Product() { ProductNumber = "TG-W091-L", Name = "Women's Tights, L", StandardCost = 30.9334, ModelID = 38, Subcategory = 24 });
            _products.Add(new Product() { ProductNumber = "SB-M891-S", Name = "Men's Bib-Shorts, S", StandardCost = 37.1209, ModelID = 12, Subcategory = 18 });
            _products.Add(new Product() { ProductNumber = "SB-M891-M", Name = "Men's Bib-Shorts, M", StandardCost = 37.1209, ModelID = 12, Subcategory = 18 });
            _products.Add(new Product() { ProductNumber = "SB-M891-L", Name = "Men's Bib-Shorts, L", StandardCost = 37.1209, ModelID = 12, Subcategory = 18 });
            _products.Add(new Product() { ProductNumber = "GL-H102-S", Name = "Half-Finger Gloves, S", StandardCost = 9.1593, ModelID = 4, Subcategory = 20 });
            _products.Add(new Product() { ProductNumber = "GL-H102-M", Name = "Half-Finger Gloves, M", StandardCost = 9.1593, ModelID = 4, Subcategory = 20 });
            _products.Add(new Product() { ProductNumber = "GL-H102-L", Name = "Half-Finger Gloves, L", StandardCost = 9.1593, ModelID = 4, Subcategory = 20 });
            _products.Add(new Product() { ProductNumber = "GL-F110-S", Name = "Full-Finger Gloves, S", StandardCost = 15.6709, ModelID = 3, Subcategory = 20 });
            _products.Add(new Product() { ProductNumber = "GL-F110-M", Name = "Full-Finger Gloves, M", StandardCost = 15.6709, ModelID = 3, Subcategory = 20 });
            _products.Add(new Product() { ProductNumber = "GL-F110-L", Name = "Full-Finger Gloves, L", StandardCost = 15.6709, ModelID = 3, Subcategory = 20 });
            _products.Add(new Product() { ProductNumber = "VE-C304-S", Name = "Classic Vest, S", StandardCost = 23.749, ModelID = 1, Subcategory = 25 });
            _products.Add(new Product() { ProductNumber = "VE-C304-M", Name = "Classic Vest, M", StandardCost = 23.749, ModelID = 1, Subcategory = 25 });
            _products.Add(new Product() { ProductNumber = "VE-C304-L", Name = "Classic Vest, L", StandardCost = 23.749, ModelID = 1, Subcategory = 25 });
            _products.Add(new Product() { ProductNumber = "SH-W890-S", Name = "Women's Mountain Shorts, S", StandardCost = 26.1763, ModelID = 37, Subcategory = 22 });
            _products.Add(new Product() { ProductNumber = "SH-W890-M", Name = "Women's Mountain Shorts, M", StandardCost = 26.1763, ModelID = 37, Subcategory = 22 });
            _products.Add(new Product() { ProductNumber = "SH-W890-L", Name = "Women's Mountain Shorts, L", StandardCost = 26.1763, ModelID = 37, Subcategory = 22 });
            _products.Add(new Product() { ProductNumber = "WB-H098", Name = "Water Bottle - 30 oz.", StandardCost = 1.8663, ModelID = 111, Subcategory = 28 });
            _products.Add(new Product() { ProductNumber = "PK-7098", Name = "Patch Kit/8 Patches", StandardCost = 0.8565, ModelID = 114, Subcategory = 37 });
            _products.Add(new Product() { ProductNumber = "SO-R809-M", Name = "Racing Socks, M", StandardCost = 3.3623, ModelID = 24, Subcategory = 23 });
            _products.Add(new Product() { ProductNumber = "SO-R809-L", Name = "Racing Socks, L", StandardCost = 3.3623, ModelID = 24, Subcategory = 23 });
            _products.Add(new Product() { ProductNumber = "RA-H123", Name = "Hitch Rack - 4-Bike", StandardCost = 44.88, ModelID = 118, Subcategory = 26 });
            _products.Add(new Product() { ProductNumber = "CL-9009", Name = "Bike Wash - Dissolver", StandardCost = 2.9733, ModelID = 119, Subcategory = 29 });
            _products.Add(new Product() { ProductNumber = "FE-6654", Name = "Fender Set - Mountain", StandardCost = 8.2205, ModelID = 121, Subcategory = 30 });
            _products.Add(new Product() { ProductNumber = "ST-1401", Name = "All-Purpose Bike Stand", StandardCost = 59.466, ModelID = 122, Subcategory = 27 });
            _products.Add(new Product() { ProductNumber = "HY-1023-70", Name = "Hydration Pack - 70 oz.", StandardCost = 20.5663, ModelID = 107, Subcategory = 32 });
            _products.Add(new Product() { ProductNumber = "SJ-0194-S", Name = "Short-Sleeve Classic Jersey, S", StandardCost = 41.5723, ModelID = 32, Subcategory = 21 });
            _products.Add(new Product() { ProductNumber = "SJ-0194-M", Name = "Short-Sleeve Classic Jersey, M", StandardCost = 41.5723, ModelID = 32, Subcategory = 21 });
            _products.Add(new Product() { ProductNumber = "SJ-0194-L", Name = "Short-Sleeve Classic Jersey, L", StandardCost = 41.5723, ModelID = 32, Subcategory = 21 });
            _products.Add(new Product() { ProductNumber = "SJ-0194-X", Name = "Short-Sleeve Classic Jersey, XL", StandardCost = 41.5723, ModelID = 32, Subcategory = 21 });
            _products.Add(new Product() { ProductNumber = "FR-T98Y-60", Name = "HL Touring Frame - Yellow, 60", StandardCost = 601.7437, ModelID = 7, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T67Y-62", Name = "LL Touring Frame - Yellow, 62", StandardCost = 199.8519, ModelID = 10, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T98Y-46", Name = "HL Touring Frame - Yellow, 46", StandardCost = 601.7437, ModelID = 7, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T98Y-50", Name = "HL Touring Frame - Yellow, 50", StandardCost = 601.7437, ModelID = 7, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T98Y-54", Name = "HL Touring Frame - Yellow, 54", StandardCost = 601.7437, ModelID = 7, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T98U-46", Name = "HL Touring Frame - Blue, 46", StandardCost = 601.7437, ModelID = 7, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T98U-50", Name = "HL Touring Frame - Blue, 50", StandardCost = 601.7437, ModelID = 7, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T98U-54", Name = "HL Touring Frame - Blue, 54", StandardCost = 601.7437, ModelID = 7, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T98U-60", Name = "HL Touring Frame - Blue, 60", StandardCost = 601.7437, ModelID = 7, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "RD-2308", Name = "Rear Derailleur", StandardCost = 53.9282, ModelID = 127, Subcategory = 9 });
            _products.Add(new Product() { ProductNumber = "FR-T67U-50", Name = "LL Touring Frame - Blue, 50", StandardCost = 199.8519, ModelID = 10, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T67U-54", Name = "LL Touring Frame - Blue, 54", StandardCost = 199.8519, ModelID = 10, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T67U-58", Name = "LL Touring Frame - Blue, 58", StandardCost = 199.8519, ModelID = 10, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T67U-62", Name = "LL Touring Frame - Blue, 62", StandardCost = 199.8519, ModelID = 10, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T67Y-44", Name = "LL Touring Frame - Yellow, 44", StandardCost = 199.8519, ModelID = 10, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T67Y-50", Name = "LL Touring Frame - Yellow, 50", StandardCost = 199.8519, ModelID = 10, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T67Y-54", Name = "LL Touring Frame - Yellow, 54", StandardCost = 199.8519, ModelID = 10, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T67Y-58", Name = "LL Touring Frame - Yellow, 58", StandardCost = 199.8519, ModelID = 10, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-T67U-44", Name = "LL Touring Frame - Blue, 44", StandardCost = 199.8519, ModelID = 10, Subcategory = 16 });
            _products.Add(new Product() { ProductNumber = "FR-M63S-40", Name = "ML Mountain Frame-W - Silver, 40", StandardCost = 199.3757, ModelID = 15, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M63S-42", Name = "ML Mountain Frame-W - Silver, 42", StandardCost = 199.3757, ModelID = 15, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M63S-46", Name = "ML Mountain Frame-W - Silver, 46", StandardCost = 199.3757, ModelID = 15, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "RB-9231", Name = "Rear Brakes", StandardCost = 47.286, ModelID = 128, Subcategory = 6 });
            _products.Add(new Product() { ProductNumber = "SE-M236", Name = "LL Mountain Seat/Saddle", StandardCost = 12.0413, ModelID = 79, Subcategory = 15 });
            _products.Add(new Product() { ProductNumber = "SE-M798", Name = "ML Mountain Seat/Saddle", StandardCost = 17.3782, ModelID = 80, Subcategory = 15 });
            _products.Add(new Product() { ProductNumber = "SE-M940", Name = "HL Mountain Seat/Saddle", StandardCost = 23.3722, ModelID = 81, Subcategory = 15 });
            _products.Add(new Product() { ProductNumber = "SE-R581", Name = "LL Road Seat/Saddle", StandardCost = 12.0413, ModelID = 82, Subcategory = 15 });
            _products.Add(new Product() { ProductNumber = "SE-R908", Name = "ML Road Seat/Saddle", StandardCost = 17.3782, ModelID = 83, Subcategory = 15 });
            _products.Add(new Product() { ProductNumber = "SE-R995", Name = "HL Road Seat/Saddle", StandardCost = 23.3722, ModelID = 84, Subcategory = 15 });
            _products.Add(new Product() { ProductNumber = "SE-T312", Name = "LL Touring Seat/Saddle", StandardCost = 12.0413, ModelID = 66, Subcategory = 15 });
            _products.Add(new Product() { ProductNumber = "SE-T762", Name = "ML Touring Seat/Saddle", StandardCost = 17.3782, ModelID = 65, Subcategory = 15 });
            _products.Add(new Product() { ProductNumber = "SE-T924", Name = "HL Touring Seat/Saddle", StandardCost = 23.3722, ModelID = 67, Subcategory = 15 });
            _products.Add(new Product() { ProductNumber = "FR-M21S-42", Name = "LL Mountain Frame - Silver, 42", StandardCost = 144.5938, ModelID = 8, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M21S-44", Name = "LL Mountain Frame - Silver, 44", StandardCost = 144.5938, ModelID = 8, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M21S-48", Name = "LL Mountain Frame - Silver, 48", StandardCost = 144.5938, ModelID = 8, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M21S-52", Name = "LL Mountain Frame - Silver, 52", StandardCost = 144.5938, ModelID = 8, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "TT-M928", Name = "Mountain Tire Tube", StandardCost = 1.8663, ModelID = 92, Subcategory = 37 });
            _products.Add(new Product() { ProductNumber = "TT-R982", Name = "Road Tire Tube", StandardCost = 1.4923, ModelID = 93, Subcategory = 37 });
            _products.Add(new Product() { ProductNumber = "TT-T092", Name = "Touring Tire Tube", StandardCost = 1.8663, ModelID = 94, Subcategory = 37 });
            _products.Add(new Product() { ProductNumber = "FR-M21B-42", Name = "LL Mountain Frame - Black, 42", StandardCost = 136.785, ModelID = 8, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M21B-44", Name = "LL Mountain Frame - Black, 44", StandardCost = 136.785, ModelID = 8, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M21B-48", Name = "LL Mountain Frame - Black, 48", StandardCost = 136.785, ModelID = 8, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M21B-52", Name = "LL Mountain Frame - Black, 52", StandardCost = 136.785, ModelID = 8, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "TI-M267", Name = "LL Mountain Tire", StandardCost = 9.3463, ModelID = 85, Subcategory = 37 });
            _products.Add(new Product() { ProductNumber = "TI-M602", Name = "ML Mountain Tire", StandardCost = 11.2163, ModelID = 86, Subcategory = 37 });
            _products.Add(new Product() { ProductNumber = "TI-M823", Name = "HL Mountain Tire", StandardCost = 13.09, ModelID = 87, Subcategory = 37 });
            _products.Add(new Product() { ProductNumber = "TI-R092", Name = "LL Road Tire", StandardCost = 8.0373, ModelID = 88, Subcategory = 37 });
            _products.Add(new Product() { ProductNumber = "TI-R628", Name = "ML Road Tire", StandardCost = 9.3463, ModelID = 89, Subcategory = 37 });
            _products.Add(new Product() { ProductNumber = "TI-R982", Name = "HL Road Tire", StandardCost = 12.1924, ModelID = 90, Subcategory = 37 });
            _products.Add(new Product() { ProductNumber = "TI-T723", Name = "Touring Tire", StandardCost = 10.8423, ModelID = 91, Subcategory = 37 });
            _products.Add(new Product() { ProductNumber = "PD-M282", Name = "LL Mountain Pedal", StandardCost = 17.9776, ModelID = 62, Subcategory = 13 });
            _products.Add(new Product() { ProductNumber = "PD-M340", Name = "ML Mountain Pedal", StandardCost = 27.568, ModelID = 63, Subcategory = 13 });
            _products.Add(new Product() { ProductNumber = "PD-M562", Name = "HL Mountain Pedal", StandardCost = 35.9596, ModelID = 64, Subcategory = 13 });
            _products.Add(new Product() { ProductNumber = "PD-R347", Name = "LL Road Pedal", StandardCost = 17.9776, ModelID = 68, Subcategory = 13 });
            _products.Add(new Product() { ProductNumber = "PD-R563", Name = "ML Road Pedal", StandardCost = 27.568, ModelID = 69, Subcategory = 13 });
            _products.Add(new Product() { ProductNumber = "PD-R853", Name = "HL Road Pedal", StandardCost = 35.9596, ModelID = 70, Subcategory = 13 });
            _products.Add(new Product() { ProductNumber = "PD-T852", Name = "Touring Pedal", StandardCost = 35.9596, ModelID = 53, Subcategory = 13 });
            _products.Add(new Product() { ProductNumber = "FR-M63S-38", Name = "ML Mountain Frame-W - Silver, 38", StandardCost = 199.3757, ModelID = 15, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M21B-40", Name = "LL Mountain Frame - Black, 40", StandardCost = 136.785, ModelID = 8, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FR-M21S-40", Name = "LL Mountain Frame - Silver, 40", StandardCost = 144.5938, ModelID = 8, Subcategory = 12 });
            _products.Add(new Product() { ProductNumber = "FD-2342", Name = "Front Derailleur", StandardCost = 40.6216, ModelID = 103, Subcategory = 9 });
            _products.Add(new Product() { ProductNumber = "HB-T721", Name = "LL Touring Handlebars", StandardCost = 20.464, ModelID = 47, Subcategory = 4 });
            _products.Add(new Product() { ProductNumber = "HB-T928", Name = "HL Touring Handlebars", StandardCost = 40.6571, ModelID = 48, Subcategory = 4 });
            _products.Add(new Product() { ProductNumber = "FB-9873", Name = "Front Brakes", StandardCost = 47.286, ModelID = 102, Subcategory = 6 });
            _products.Add(new Product() { ProductNumber = "CS-4759", Name = "LL Crankset", StandardCost = 77.9176, ModelID = 99, Subcategory = 8 });
            _products.Add(new Product() { ProductNumber = "CS-6583", Name = "ML Crankset", StandardCost = 113.8816, ModelID = 100, Subcategory = 8 });
            _products.Add(new Product() { ProductNumber = "CS-9183", Name = "HL Crankset", StandardCost = 179.8156, ModelID = 101, Subcategory = 8 });
            _products.Add(new Product() { ProductNumber = "CH-0234", Name = "Chain", StandardCost = 8.9866, ModelID = 98, Subcategory = 7 });
            _products.Add(new Product() { ProductNumber = "BK-T79Y-60", Name = "Touring-1000 Yellow, 60", StandardCost = 1481.9379, ModelID = 34, Subcategory = 3 });

            return _products;
        }
    }
}