public Company(string name, string trade)
 {
     this.Name  = name;
     this.Trade = SelectionManager.SelectTrade(trade);
 }
        public static string SelectTrade(TradeEnum input)
        {
            Dictionary <string, TradeEnum> tradeDict =
                new Dictionary <string, TradeEnum>();

            tradeDict.Add("Architecture", TradeEnum.Architecture);
            tradeDict.Add("Communications", TradeEnum.Communications);
            tradeDict.Add("Communications | Data", TradeEnum.CommunicationsData);
            tradeDict.Add("Concrete", TradeEnum.Concrete);
            tradeDict.Add("Concrete | Cast-in-Place", TradeEnum.ConcreteCastinPlace);
            tradeDict.Add("Concrete | Precast", TradeEnum.ConcretePrecast);
            tradeDict.Add("Construction Management", TradeEnum.ConstructionManagement);
            tradeDict.Add("Conveying Equipment", TradeEnum.ConveyingEquipment);
            tradeDict.Add("Conveying Equipment | Elevators", TradeEnum.ConveyingEquipmentElevators);
            tradeDict.Add("Demolition", TradeEnum.Demolition);
            tradeDict.Add("Earthwork", TradeEnum.Earthwork);
            tradeDict.Add("Earthwork | Site Excavation & Grading", TradeEnum.EarthworkSiteExcavationGrading);
            tradeDict.Add("Electrical", TradeEnum.Electrical);
            tradeDict.Add("Electrical Power Generation", TradeEnum.ElectricalPowerGeneration);
            tradeDict.Add("Electronic Safety & Security", TradeEnum.ElectronicSafetySecurity);
            tradeDict.Add("Equipment", TradeEnum.Equipment);
            tradeDict.Add("Equipment | Kitchen Appliances", TradeEnum.EquipmentKitchenAppliances);
            tradeDict.Add("Exterior Improvements", TradeEnum.ExteriorImprovements);
            tradeDict.Add("Exterior | Fences & Gates", TradeEnum.ExteriorFencesGates);
            tradeDict.Add("Exterior | Landscaping", TradeEnum.ExteriorLandscaping);
            tradeDict.Add("Exterior | Irrigation", TradeEnum.ExteriorIrrigation);
            tradeDict.Add("Finishes", TradeEnum.Finishes);
            tradeDict.Add("Finishes | Carpeting", TradeEnum.FinishesCarpeting);
            tradeDict.Add("Finishes | Ceiling", TradeEnum.FinishesCeiling);
            tradeDict.Add("Finishes | Drywall", TradeEnum.FinishesDrywall);
            tradeDict.Add("Finishes | Flooring", TradeEnum.FinishesFlooring);
            tradeDict.Add("Finishes | Painting & Coating", TradeEnum.FinishesPaintingCoating);
            tradeDict.Add("Finishes | Tile", TradeEnum.FinishesTile);
            tradeDict.Add("Fire Suppression", TradeEnum.FireSuppression);
            tradeDict.Add("Furnishings", TradeEnum.Furnishings);
            tradeDict.Add("Furnishings | Casework & Cabinets", TradeEnum.FurnishingsCaseworkCabinets);
            tradeDict.Add("Furnishings | Countertops", TradeEnum.FurnishingsCountertops);
            tradeDict.Add("Furnishings | Window Treatments", TradeEnum.FurnishingsWindowTreatments);
            tradeDict.Add("General Contractor", TradeEnum.GeneralContractor);
            tradeDict.Add("HVAC Heating, Ventilating, & Air Conditioning", TradeEnum.HVACHeatingVentilatingAirConditioning);
            tradeDict.Add("Industry-Specific Manufacturing Processing", TradeEnum.IndustrySpecificManufacturingProcessing);
            tradeDict.Add("Integrated Automation", TradeEnum.IntegratedAutomation);
            tradeDict.Add("Masonry", TradeEnum.Masonry);
            tradeDict.Add("Material Processing & Handling Equipment", TradeEnum.MaterialProcessingHandlingEquipment);
            tradeDict.Add("Metals", TradeEnum.Metals);
            tradeDict.Add("Metals | Structural Steel / Framing", TradeEnum.MetalsStructuralSteelFraming);
            tradeDict.Add("Moisture Protection", TradeEnum.MoistureProtection);
            tradeDict.Add("Moisture Protection | Roofing", TradeEnum.MoistureProtectionRoofing);
            tradeDict.Add("Moisture Protection | Waterproofing", TradeEnum.MoistureProtectionWaterproofing);
            tradeDict.Add("Openings", TradeEnum.Openings);
            tradeDict.Add("Openings | Doors & Frames", TradeEnum.OpeningsDoorsFrames);
            tradeDict.Add("Openings | Entrances & Storefronts", TradeEnum.OpeningsEntrancesStorefronts);
            tradeDict.Add("Openings | Glazing", TradeEnum.OpeningsGlazing);
            tradeDict.Add("Openings | Roof Windows & Skylights", TradeEnum.OpeningsRoofWindowsSkylights);
            tradeDict.Add("Openings | Windows", TradeEnum.OpeningsWindows);
            tradeDict.Add("Owner", TradeEnum.Owner);
            tradeDict.Add("Plumbing", TradeEnum.Plumbing);
            tradeDict.Add("Pollution & Waste Control Equipment", TradeEnum.PollutionWasteControlEquipment);
            tradeDict.Add("Process Gas & Liquid Handling, Purification, & Storage Equipment", TradeEnum.ProcessGasLiquidHandlingPurificationStorageEquipment);
            tradeDict.Add("Process Heating, Cooling, & Drying Equipment", TradeEnum.ProcessHeatingCoolingDryingEquipment);
            tradeDict.Add("Process Integration", TradeEnum.ProcessIntegration);
            tradeDict.Add("Process Integration | Piping", TradeEnum.ProcessIntegrationPiping);
            tradeDict.Add("Special Construction", TradeEnum.SpecialConstruction);
            tradeDict.Add("Specialties", TradeEnum.Specialties);
            tradeDict.Add("Specialties | Signage", TradeEnum.SpecialtiesSignage);
            tradeDict.Add("Utilities", TradeEnum.Utilities);
            tradeDict.Add("Water & Wastewater Equipment", TradeEnum.WaterWastewaterEquipment);
            tradeDict.Add("Waterway & Marine Construction", TradeEnum.WaterwayMarineConstruction);
            tradeDict.Add("Wood & Plastics", TradeEnum.WoodPlastics);
            tradeDict.Add("Wood & Plastics | Millwork", TradeEnum.WoodPlasticsMillwork);
            tradeDict.Add("Wood & Plastics | Rough Carpentry", TradeEnum.WoodPlasticsRoughCarpentry);


            var tradeDict_reverse = new Dictionary <TradeEnum, string>();

            foreach (var entry in tradeDict)
            {
                if (!tradeDict_reverse.ContainsKey(entry.Value))
                {
                    tradeDict_reverse.Add(entry.Value, entry.Key);
                }
            }

            return(tradeDict_reverse[input]);
        }