Exemplo n.º 1
0
        //[TestMethod]
        public void LoadFakeReferenceData(ICloudCompareContext context)
        {
            //set the context to a fake stub
            //this.FakeContext = new FakeCloudCompareContext();
            this.FakeContext = context;

            //_context = new StationEntities();

            //now use this fake stub as the repository
            var repository = new QueryRepository(this.FakeContext);

            //add our sample fake station entities to the repository
            Feature f;
            FeatureType ft;
            CloudCompare.Domain.Models.OperatingSystem o;
            MobilePlatform mp;
            Browser b;
            LicenceTypeMinimum ltMin;
            LicenceTypeMaximum ltMax;
            Language l;
            SupportType st;
            SupportDays sd;
            SupportHours sh;
            SupportTerritory sterritory;
            Category c;
            MinimumContract mc;
            PaymentFrequency pf;
            SetupFee sf;
            PaymentOption po;
            FreeTrialPeriod ftp;
            Vendor v;
            ThumbnailDocument td;
            ThumbnailDocumentType tdt;

            #region CATEGORIES
            c = new Category()
            {
                CategoryName = "Voice"
            };
            repository.AddCategory(c);
            c = new Category()
            {
                CategoryName = "Customer Management"
            };
            repository.AddCategory(c);
            c = new Category()
            {
                CategoryName = "Web Conference"
            };
            repository.AddCategory(c);
            c = new Category()
            {
                CategoryName = "Email"
            };
            repository.AddCategory(c);
            c = new Category()
            {
                CategoryName = "Office"
            };
            repository.AddCategory(c);
            c = new Category()
            {
                CategoryName = "Storage & Backup"
            };
            repository.AddCategory(c);
            c = new Category()
            {
                CategoryName = "Project Management"
            };
            repository.AddCategory(c);
            c = new Category()
            {
                CategoryName = "Financial"
            };
            repository.AddCategory(c);
            #endregion

            #region FEATURETYPES
            ft = new FeatureType()
            {
                FeatureTypeName = "Category",
            };
            repository.AddFeatureType(ft);

            ft = new FeatureType()
            {
                FeatureTypeName = "LicenceTypeMinimum",
            };
            repository.AddFeatureType(ft);

            ft = new FeatureType()
            {
                FeatureTypeName = "LicenceTypeMaximum",
            };
            repository.AddFeatureType(ft);
            ft = new FeatureType()
            {
                FeatureTypeName = "OperatingSystem",
            };
            repository.AddFeatureType(ft);
            ft = new FeatureType()
            {
                FeatureTypeName = "Browser",
            };
            repository.AddFeatureType(ft);
            ft = new FeatureType()
            {
                FeatureTypeName = "Feature",
            };
            repository.AddFeatureType(ft);

            ft = new FeatureType()
            {
                FeatureTypeName = "SupportType",
            };
            repository.AddFeatureType(ft);

            ft = new FeatureType()
            {
                FeatureTypeName = "SupportDays",
            };
            repository.AddFeatureType(ft);

            ft = new FeatureType()
            {
                FeatureTypeName = "SupportHours",
            };
            repository.AddFeatureType(ft);

            ft = new FeatureType()
            {
                FeatureTypeName = "Language",
            };
            repository.AddFeatureType(ft);
            #endregion

            this.FakeContext.SaveChanges();

            #region FEATURES

            #region VOICE FEATURES
            f = new Feature()
            {
                FeatureName = "Use Existing Handset",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Keep Existing Number",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Emergency Calls",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "PC Required (for Calls)",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Inclusive UK Landline Calls",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Inclusive Mobile Calls",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Inclusive International Calls (Landline Only)",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Virtual Landline Number",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Local Dialling Code",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Freephone/Local Rate Number",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Dial-by-name Directory",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Video Calling",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Auto-Reception/Call Handling",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Answering Rules",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Call Centre/Interactive Voice Response",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Music-on-hold",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Voicemail",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "SMS Sending",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Call Forwarding",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Fixed-to-mobile Integration",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Hardware Supplied",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("VOICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("VOICE"));
            repository.AddFeature(f);
            #endregion

            #region CUSTOMER MANAGEMENT FEATURES
            f = new Feature()
            {
                FeatureName = "Unlimited Contacts",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Unlimited Storage (for Documents, PPTs, PDFs)",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Sales Opportunity Management",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Sales Forecasting",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Web to Lead Form",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Email Marketing",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Campaign Tracking and Management",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Email Integration",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Customer Helpdesk",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Case Queueing & Tracking",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Unlimited Cases",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Document Management",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Custom Reports",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Full SSL Security",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Mobile Integration",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Invoice Creation & Management",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Inventory & Order Management",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Open API/3rd Party Integration",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Social Media Integration",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "User Customization",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("CUSTOMER MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("CUSTOMER MANAGEMENT"));
            repository.AddFeature(f);
            #endregion

            #region WEB CONFERENCE FEATURES
            f = new Feature()
            {
                FeatureName = "Maximum Meeting Attendees",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Maximum Webinar/Event Attendees",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "High Definition Video",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Presenter Preparation Mode",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Multiple Meeting Hosts/Chairperson",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Individual Usage Reports",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "'On The Fly' Invitations For Additional Participants",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Instant Meeting Function",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Active Speaker Video Switching",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Full Desktop Sharing",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Single Application Share",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Upload Multiple Presentations",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Private Chat Mode",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "SSL Security",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Record & Replay Service",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Interface Company Branding",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Inactivity Time Out",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Fixed Line & Mobile Dial-In",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Free VoIP Calling",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "MS Outlook Integration (to book meetings)",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("WEB CONFERENCE"),
            };
            f.Categories.Add(repository.FindCategoryByName("WEB CONFERENCE"));
            repository.AddFeature(f);
            #endregion

            #region EMAIL FEATURES
            f = new Feature()
            {
                FeatureName = "Number of Mailboxes/Email Addresses",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Storage Limit",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Individual File Size Limit (Attachments)",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "No Daily Mail Limits (Inbox/Outbox)",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Migrate Company Domain",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Anti-Virus",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Spam Guard / Anti-Phishing",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Block Addresses / Blacklist",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Aliases",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Ad-free",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Email Archiving",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Quick Filter Toolbar",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Smart Folders",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Account Groups",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Instant Messaging (IM)",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Track Conversations",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Social Media Integration",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "MS Outlook Compatible",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Email Migration Service",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "SSL Security",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("EMAIL"),
            };
            f.Categories.Add(repository.FindCategoryByName("EMAIL"));
            repository.AddFeature(f);
            #endregion

            #region OFFICE FEATURES
            f = new Feature()
            {
                FeatureName = "Advanced Proofing & Editing",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Advanced Referencing & Indexing",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Mailing Features",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Formula Management",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Data Management",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Advanced Charting & Tables",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Advanced Design & Animation",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Real-Time Collaboration",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Automatic Version Management",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Large Video Files >50MB",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Own Branding",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Shared/Collaboration Workspace",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Email Client",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Contact Management",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Shared Calendar",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Web Meetings",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Project Management / Task Manager",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Internet Tools",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Web Publishing e.g. Blog",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Social Media Integration",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Internal Website (Intranet)",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "External Customer Website (Extranet)",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Notes",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Read & Edit",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Save Web Content",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Image Capture",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Automatic Sync (for use on other devices)",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "MS Office Compatible",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Offline Mode (for desktop editing)",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Unlimited Document Storage",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Document Revision History",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Document Password Protection",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Mobile/Browser Editing",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Multi-User / Guest User",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "3rd Party APIs",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "SSL Security/Encryption",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("OFFICE"),
            };
            f.Categories.Add(repository.FindCategoryByName("OFFICE"));
            repository.AddFeature(f);
            #endregion

            #region STORAGE & BACKUP
            f = new Feature()
            {
                FeatureName = "Storage Limit",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Individual File Limit",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Adjust Transfer Speed / Bandwidth Used",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Military Grade Data Transfer",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Military Grade Storage",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Version History",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Undelete Files (up to 30 days)",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "No Bandwidth Throttling",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "One-Click Sharing",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Drag & Drop Multiple Files",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Multi-User Access",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Password Protected Folder Sharing",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Role Based Access",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Search Within Documents",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Local Back-Up",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Server Back-Up",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Automatic Back-Up",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Store Video e.g. Movies",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Guaranteed Restore",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Social Media Back-Up",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("STORAGE & BACKUP"),
            };
            f.Categories.Add(repository.FindCategoryByName("STORAGE & BACKUP"));
            repository.AddFeature(f);
            #endregion

            #region PROJECT MANAGEMENT
            f = new Feature()
            {
                FeatureName = "Number Of Projects",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "File Storage",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Multi-Users Per Account",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Document Sharing",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Shared Workspace",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Edited Document Tracking",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Lockfiles",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Update & Deadline Alerts",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Interactive GANTT Charts",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Budget Tracking",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Client Invoicing",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Project Wiki",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Customised Reports",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "MS Project Compatible",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "SSL Security",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Military Grade Document Security",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Guaranteed Restore",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Offline Mode",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "3rd Party APIs",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Bug Tracker",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("PROJECT MANAGEMENT"),
            };
            f.Categories.Add(repository.FindCategoryByName("PROJECT MANAGEMENT"));
            repository.AddFeature(f);
            #endregion

            #region FINANCIAL
            f = new Feature()
            {
                FeatureName = "Unlimited Transactions",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Unlimited Customer Records",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Unlimited Supplier Records",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Unlimited Product & Service Descriptions",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Create Invoices",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Invoice-to-Payment Matching",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Multi-Currency Invoicing",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Record Bank Payments",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Customised Reports",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "SSL Security",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Project Accounting",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "External Access (for Accountants)",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Multi-User Access",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "MS Excel Compatible",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Fixed Asset Depreciation Tool",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Customer Statements",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Purchase Order System",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "Payroll",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "VAT Filing",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            f = new Feature()
            {
                FeatureName = "3rd Party API",
                Categories = new List<Category>(),
                //Category = repository.FindCategoryByName("FINANCIAL"),
            };
            f.Categories.Add(repository.FindCategoryByName("FINANCIAL"));
            repository.AddFeature(f);
            #endregion

            #endregion

            #region OPERATING SYSTEMS
            o = new Domain.Models.OperatingSystem()
            {
                OperatingSystemName = "Win"
            };
            repository.AddOperatingSystem(o);
            o = new Domain.Models.OperatingSystem()
            {
                OperatingSystemName = "Mac"
            };
            repository.AddOperatingSystem(o);
            o = new Domain.Models.OperatingSystem()
            {
                OperatingSystemName = "Linux"
            };
            repository.AddOperatingSystem(o);
            o = new Domain.Models.OperatingSystem()
            {
                OperatingSystemName = "iPad"
            };
            repository.AddOperatingSystem(o);
            #endregion

            #region MOBILE PLATFORMS
            mp = new MobilePlatform()
            {
                MobilePlatformName = "All"
            };
            repository.AddMobilePlatform(mp);
            mp = new MobilePlatform()
            {
                MobilePlatformName = "Android"
            };
            repository.AddMobilePlatform(mp);
            mp = new MobilePlatform()
            {
                MobilePlatformName = "iPhone"
            };
            repository.AddMobilePlatform(mp);
            mp = new MobilePlatform()
            {
                MobilePlatformName = "Win"
            };
            repository.AddMobilePlatform(mp);
            mp = new MobilePlatform()
            {
                MobilePlatformName = "BB"
            };
            repository.AddMobilePlatform(mp);
            mp = new MobilePlatform()
            {
                MobilePlatformName = "No"
            };
            repository.AddMobilePlatform(mp);
            mp = new MobilePlatform()
            {
                MobilePlatformName = "iPad"
            };
            repository.AddMobilePlatform(mp);
            mp = new MobilePlatform()
            {
                MobilePlatformName = "Apple"
            };
            repository.AddMobilePlatform(mp);
            mp = new MobilePlatform()
            {
                MobilePlatformName = "Blackberry"
            };
            repository.AddMobilePlatform(mp);
            #endregion

            #region BROWSERS
            b = new Browser()
            {
                BrowserName = "Internet Explorer 6"
            };
            repository.AddBrowser(b);
            b = new Browser()
            {
                BrowserName = "Internet Explorer 7"
            };
            repository.AddBrowser(b);
            b = new Browser()
            {
                BrowserName = "Internet Explorer 8"
            };
            repository.AddBrowser(b);
            b = new Browser()
            {
                BrowserName = "Internet Explorer 9"
            };
            repository.AddBrowser(b);
            b = new Browser()
            {
                BrowserName = "Firefox"
            };
            repository.AddBrowser(b);
            b = new Browser()
            {
                BrowserName = "Safari"
            };
            repository.AddBrowser(b);
            b = new Browser()
            {
                BrowserName = "Opera"
            };
            repository.AddBrowser(b);
            b = new Browser()
            {
                BrowserName = "Chrome"
            };
            repository.AddBrowser(b);
            #endregion

            #region LICENCE TYPE MINIMUM
            ltMin = new LicenceTypeMinimum()
            {
                LicenceTypeMinimumName = 1
            };
            repository.AddLicenceTypeMinimum(ltMin);
            ltMin = new LicenceTypeMinimum()
            {
                LicenceTypeMinimumName = 2
            };
            repository.AddLicenceTypeMinimum(ltMin);
            ltMin = new LicenceTypeMinimum()
            {
                LicenceTypeMinimumName = 5
            };
            repository.AddLicenceTypeMinimum(ltMin);
            ltMin = new LicenceTypeMinimum()
            {
                LicenceTypeMinimumName = 3
            };
            repository.AddLicenceTypeMinimum(ltMin);
            #endregion

            #region LICENCE TYPE MAXIMUM
            ltMax = new LicenceTypeMaximum()
            {
                LicenceTypeMaximumName = 1
            };
            repository.AddLicenceTypeMaximum(ltMax);
            ltMax = new LicenceTypeMaximum()
            {
                LicenceTypeMaximumName = 2
            };
            repository.AddLicenceTypeMaximum(ltMax);
            ltMax = new LicenceTypeMaximum()
            {
                LicenceTypeMaximumName = 3
            };
            repository.AddLicenceTypeMaximum(ltMax);
            ltMax = new LicenceTypeMaximum()
            {
                LicenceTypeMaximumName = 5
            };
            repository.AddLicenceTypeMaximum(ltMax);
            ltMax = new LicenceTypeMaximum()
            {
                LicenceTypeMaximumName = 6
            };
            repository.AddLicenceTypeMaximum(ltMax);
            ltMax = new LicenceTypeMaximum()
            {
                LicenceTypeMaximumName = 8
            };
            repository.AddLicenceTypeMaximum(ltMax);
            ltMax = new LicenceTypeMaximum()
            {
                LicenceTypeMaximumName = 9
            };
            repository.AddLicenceTypeMaximum(ltMax);
            ltMax = new LicenceTypeMaximum()
            {
                LicenceTypeMaximumName = 10
            };
            repository.AddLicenceTypeMaximum(ltMax);
            ltMax = new LicenceTypeMaximum()
            {
                LicenceTypeMaximumName = 20
            };
            repository.AddLicenceTypeMaximum(ltMax);
            ltMax = new LicenceTypeMaximum()
            {
                LicenceTypeMaximumName = 50
            };
            repository.AddLicenceTypeMaximum(ltMax);
            ltMax = new LicenceTypeMaximum()
            {
                LicenceTypeMaximumName = 99
            };
            repository.AddLicenceTypeMaximum(ltMax);
            ltMax = new LicenceTypeMaximum()
            {
                LicenceTypeMaximumName = 250
            };
            repository.AddLicenceTypeMaximum(ltMax);
            ltMax = new LicenceTypeMaximum()
            {
                LicenceTypeMaximumName = 500
            };
            repository.AddLicenceTypeMaximum(ltMax);
            ltMax = new LicenceTypeMaximum()
            {
                LicenceTypeMaximumName = 16384
            };
            repository.AddLicenceTypeMaximum(ltMax);
            #endregion

            #region LANGUAGES
            l = new Language()
            {
                LanguageName = "English"
            };
            repository.AddLanguage(l);
            #endregion

            #region SUPPORT TYPES
            st = new SupportType()
            {
                SupportTypeName = "Online"
            };
            repository.AddSupportType(st);
            st = new SupportType()
            {
                SupportTypeName = "Telephone"
            };
            repository.AddSupportType(st);
            st = new SupportType()
            {
                SupportTypeName = "Email"
            };
            repository.AddSupportType(st);
            st = new SupportType()
            {
                SupportTypeName = "FAQ"
            };
            repository.AddSupportType(st);
            st = new SupportType()
            {
                SupportTypeName = "Troubleshoot"
            };
            repository.AddSupportType(st);
            st = new SupportType()
            {
                SupportTypeName = "Knowledge Base"
            };
            repository.AddSupportType(st);
            st = new SupportType()
            {
                SupportTypeName = "Community"
            };
            repository.AddSupportType(st);
            st = new SupportType()
            {
                SupportTypeName = "Free Telephone"
            };
            repository.AddSupportType(st);
            st = new SupportType()
            {
                SupportTypeName = "Local Rate Phone"
            };
            repository.AddSupportType(st);
            st = new SupportType()
            {
                SupportTypeName = "Troubleticket"
            };
            repository.AddSupportType(st);
            st = new SupportType()
            {
                SupportTypeName = "Toll Free Phone"
            };
            repository.AddSupportType(st);
            st = new SupportType()
            {
                SupportTypeName = "Chat"
            };
            repository.AddSupportType(st);
            st = new SupportType()
            {
                SupportTypeName = "CallBack"
            };
            repository.AddSupportType(st);
            #endregion

            #region SUPPORT DAYS
            sd = new SupportDays()
            {
                SupportDaysName = "7"
            };
            repository.AddSupportDays(sd);
            sd = new SupportDays()
            {
                SupportDaysName = "5"
            };
            repository.AddSupportDays(sd);
            sd = new SupportDays()
            {
                SupportDaysName = "N/A"
            };
            repository.AddSupportDays(sd);
            sd = new SupportDays()
            {
                SupportDaysName = "Mon-Fri"
            };
            repository.AddSupportDays(sd);
            #endregion

            #region SUPPORT HOURS
            sh = new SupportHours()
            {
                SupportHoursName = "24 hours"
            };
            repository.AddSupportHours(sh);
            sh = new SupportHours()
            {
                SupportHoursName = "9am-6pm"
            };
            repository.AddSupportHours(sh);
            sh = new SupportHours()
            {
                SupportHoursName = "N/A"
            };
            repository.AddSupportHours(sh);
            sh = new SupportHours()
            {
                SupportHoursName = "12 hours (business)"
            };
            repository.AddSupportHours(sh);
            sh = new SupportHours()
            {
                SupportHoursName = "12 hours"
            };
            repository.AddSupportHours(sh);
            sh = new SupportHours()
            {
                SupportHoursName = "9am-5pm"
            };
            repository.AddSupportHours(sh);
            #endregion

            #region SUPPORT TERRITORIES
            sterritory = new SupportTerritory()
            {
                SupportTerritoryName = "UK"
            };
            repository.AddSupportTerritory(sterritory);
            sterritory = new SupportTerritory()
            {
                SupportTerritoryName = "Global"
            };
            repository.AddSupportTerritory(sterritory);
            sterritory = new SupportTerritory()
            {
                SupportTerritoryName = "US"
            };
            repository.AddSupportTerritory(sterritory);
            sterritory = new SupportTerritory()
            {
                SupportTerritoryName = "Australia"
            };
            repository.AddSupportTerritory(sterritory);
            #endregion

            #region MINIMUM CONTRACTS
            mc = new MinimumContract()
            {
                MinimumContractName = "No Contract"
            };
            repository.AddMinimumContract(mc);
            mc = new MinimumContract()
            {
                MinimumContractName = "12 Months"
            };
            repository.AddMinimumContract(mc);
            mc = new MinimumContract()
            {
                MinimumContractName = "24 Months"
            };
            repository.AddMinimumContract(mc);
            mc = new MinimumContract()
            {
                MinimumContractName = "1 Month"
            };
            repository.AddMinimumContract(mc);
            mc = new MinimumContract()
            {
                MinimumContractName = "36 Months"
            };
            repository.AddMinimumContract(mc);
            mc = new MinimumContract()
            {
                MinimumContractName = "Not Applicable"
            };
            repository.AddMinimumContract(mc);
            #endregion

            #region PAYMENT FREQUENCIES
            pf = new PaymentFrequency()
            {
                PaymentFrequencyName = "Monthly"
            };
            repository.AddPaymentFrequency(pf);
            pf = new PaymentFrequency()
            {
                PaymentFrequencyName = "Not Applicable"
            };
            repository.AddPaymentFrequency(pf);
            pf = new PaymentFrequency()
            {
                PaymentFrequencyName = "On-demand"
            };
            repository.AddPaymentFrequency(pf);
            pf = new PaymentFrequency()
            {
                PaymentFrequencyName = "Annual"
            };
            repository.AddPaymentFrequency(pf);
            pf = new PaymentFrequency()
            {
                PaymentFrequencyName = "One-Off"
            };
            repository.AddPaymentFrequency(pf);
            #endregion

            #region SETUP FEES
            sf = new SetupFee()
            {
                SetupFeeName = "Not Applicable"
            };
            repository.AddSetupFee(sf);
            sf = new SetupFee()
            {
                SetupFeeName = "£27.97"
            };
            repository.AddSetupFee(sf);
            sf = new SetupFee()
            {
                SetupFeeName = "£14.99"
            };
            repository.AddSetupFee(sf);
            sf = new SetupFee()
            {
                SetupFeeName = "£4.99"
            };
            repository.AddSetupFee(sf);
            sf = new SetupFee()
            {
                SetupFeeName = "£130.00"
            };
            repository.AddSetupFee(sf);
            sf = new SetupFee()
            {
                SetupFeeName = "£29.00"
            };
            repository.AddSetupFee(sf);
            sf = new SetupFee()
            {
                SetupFeeName = "£20.00"
            };
            repository.AddSetupFee(sf);
            sf = new SetupFee()
            {
                SetupFeeName = "£24.99"
            };
            repository.AddSetupFee(sf);
            sf = new SetupFee()
            {
                SetupFeeName = "$25.00"
            };
            repository.AddSetupFee(sf);
            sf = new SetupFee()
            {
                SetupFeeName = "$49.99"
            };
            repository.AddSetupFee(sf);
            sf = new SetupFee()
            {
                SetupFeeName = "£9.21"
            };
            repository.AddSetupFee(sf);
            sf = new SetupFee()
            {
                SetupFeeName = "£19.99"
            };
            repository.AddSetupFee(sf);
            #endregion

            #region PAYMENT OPTIONS
            po = new PaymentOption()
            {
                PaymentOptionName = "Credit Card"
            };
            repository.AddPaymentOption(po);
            po = new PaymentOption()
            {
                PaymentOptionName = "Pre-Pay"
            };
            repository.AddPaymentOption(po);
            po = new PaymentOption()
            {
                PaymentOptionName = "Direct Debit"
            };
            repository.AddPaymentOption(po);
            po = new PaymentOption()
            {
                PaymentOptionName = "Debit Card"
            };
            repository.AddPaymentOption(po);
            po = new PaymentOption()
            {
                PaymentOptionName = "PayPal"
            };
            repository.AddPaymentOption(po);
            po = new PaymentOption()
            {
                PaymentOptionName = "Invoice"
            };
            repository.AddPaymentOption(po);
            #endregion

            #region FREE TRIAL PERIODS
            ftp = new FreeTrialPeriod()
            {
                FreeTrialPeriodName = "No"
            };
            repository.AddFreeTrialPeriod(ftp);
            ftp = new FreeTrialPeriod()
            {
                FreeTrialPeriodName = "Yes"
            };
            repository.AddFreeTrialPeriod(ftp);
            ftp = new FreeTrialPeriod()
            {
                FreeTrialPeriodName = "Demo"
            };
            repository.AddFreeTrialPeriod(ftp);
            ftp = new FreeTrialPeriod()
            {
                FreeTrialPeriodName = "Test Drive"
            };
            repository.AddFreeTrialPeriod(ftp);
            #endregion

            #region VENDORS
            v = new Vendor()
            {
                VendorName = "Skype",
                VendorLogoURL = "skype.bmp",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Vonage",
                VendorLogoURL = "vonage.bmp",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Vodafone",
                VendorLogoURL = "vodafone.bmp",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "VoIPtalk",
                VendorLogoURL = "voiptalk.bmp",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Gradwell",
                VendorLogoURL = "gradwell.bmp",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "RingCentral",
                VendorLogoURL = "ringcentral.bmp",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "BT",
                VendorLogoURL = "bt.bmp",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Tpad",
                VendorLogoURL = "tpaddotcom.bmp",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "yourCHOICE",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "freespeech.co.uk",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "magicJack",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Press1.co.uk",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "usomo",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "colt",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "sureVoIP",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "NTA:LTD",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "sipgate",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Salesforce",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "SUGARCRM",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "ZOHOCRM",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Workbooks.com",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Microsoft Dynamics",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Maximizer",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "opencrm",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "TactileCRM",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "wecandobiz",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Buddy",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "sage",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "webCRM",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "capsule",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "SohoOS",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Cisco webex",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "GoToMeeting",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Microsoft Lync Online",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "LotusLive",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Infinite",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "ZOHO Meeting",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "FUZE Meeting",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Yugma",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "POWWOWNOW",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "MegaMeeting",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "meetingzone",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "InterCall",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "OnSync",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "YAHOO Small Business",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Microsoft Exchange Online",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "ZOHO Mail",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "SMS",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "BlueTie",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "GMail",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Star",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "HyperOffice",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "FastMail",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "webfusion",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "rackspace",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "eclipse",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "FuseMail",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "fasthosts",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "INTERMEDIA",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "1&1",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Microsoft Office 365",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Google Apps for Business",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "ZOHO docs",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Think Free",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "feng OFFICE",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Z CUBES",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "HyperOffice",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "myoffice",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Quickoffice",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Live Documents",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "EVERNOTE",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "sliderocket",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "PREZI",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "CARBONITE",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "box",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "OpenDrive",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "ADrive",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "storegate",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "SugarSync",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "FLIPDRIVE",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "mozy",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Dropbox",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "CRASHPLAN",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "elephantdrive",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "iDrive",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "livedrive",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "iBackup",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "backupify",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "ZOHO Projects",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "@task",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "mavenlink",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "clarizen",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "ProWorkflow",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "HyperOffice",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "WORKetc",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "LiquidPlanner",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "CELOXIS",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "blue camroo",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "PROJECTMANAGER.com",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "CollaborateCloud",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "copper",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "projectplace",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Basecamp",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "trafficLIVE",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "iManageProject",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "intervals",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Geniusproject",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "glasscubes",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "xero",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "SageOne",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "e-conomic",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "ARITHMO",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "liquid",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "kashoo",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "FRSHBOOKS",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "ClearBooks",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "ledgerble",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "KashFlow",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "FreeAgent",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "outright",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "ZOHO Books",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "iCashbook",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "Yendo",
            };
            repository.AddVendor(v);
            v = new Vendor()
            {
                VendorName = "intuit",
            };
            repository.AddVendor(v);
            #endregion

            #region THUMBNAIL DOCUMENT TYPES
            tdt = new ThumbnailDocumentType()
            {
                ThumbnailDocumentTypeName = "Case Study"
            };
            repository.AddThumbnailDocumentType(tdt);
            tdt = new ThumbnailDocumentType()
            {
                ThumbnailDocumentTypeName = "White Paper"
            };
            repository.AddThumbnailDocumentType(tdt);
            #endregion

            //// Mock the Products Repository using Moq
            //Mock<ICloudCompareContext> mockCloudCompareRepository = new Mock<ICloudCompareContext>();

            //// Try finding a product by id
            //CloudApplication testCloudApplication = mockCloudCompareRepository.Object.FindById(2);

            //Assert.IsNotNull(testCloudApplication); // Test if null
            //Assert.IsInstanceOfType(typeof(CloudApplication),testCloudApplication); // Test type
            //Assert.AreEqual("TITLE", testCloudApplication.Title); // Verify it is the right product
        }