public FileContentResult Reflection(string model)
        {
            List <WidgetBeta>  listBetas  = null;
            List <WidgetGamma> listGammas = null;
            List <WidgetPrime> listPrimes = null;

            WidgetPrime singleSource = null;
            WidgetBeta  singleTarget = null;

            listBetas  = PopulateBeta();
            listGammas = PopulateGamma();

            listPrimes = PopulatePrime();// new List<WidgetPrime>();

            for (int i = 0; i < listPrimes.Count; i++)
            {
                singleSource = listPrimes[i];
                singleTarget = new WidgetBeta();

                singleTarget = (WidgetBeta)TransferValues(singleSource, singleTarget);

                listBetas.Add(singleTarget);
            }


            CsvExport <WidgetBeta> csv = new CsvExport <WidgetBeta>(listBetas);

            return(File(new System.Text.UTF8Encoding().GetBytes(csv.Export()), "text/csv", "test.csv"));

            // return RedirectToAction("Reflection");
        }
        public List <WidgetPrime> PopulatePrime()
        {
            List <WidgetPrime> widgets    = new List <WidgetPrime>();
            WidgetPrime        thisWidget = null;

            Random rand = new Random();

            int iLoop = 5;

            for (int i = 0; i < iLoop; i++)
            {
                thisWidget              = new WidgetPrime();
                thisWidget.id           = i;
                thisWidget.RandomString = String.Format("Random{0}", rand.Next(10));
                thisWidget.RandomInt    = i ^ i;
                thisWidget.Description  = String.Format("Description{0}", i);

                widgets.Add(thisWidget);
            }

            return(widgets);
        }