/// <summary>
        /// Controller method that takes the user to the page to
        /// create a staging table. No parameters are needed and
        /// the controller needs no data access. 
        /// 
        /// Accessed via /Staging/CreateStaging
        /// </summary>
        /// <returns></returns>
        public ActionResult CreateStaging()
        {
            GeneralStagingModel model = new GeneralStagingModel();

            List<Breadcrumb> trail = new List<Breadcrumb>();

            trail.Add(new Breadcrumb() { LinkText = "Home", Action = "Index", Controller = "Home", isCurrent = false });
            trail.Add(new Breadcrumb() { LinkText = "Staging Index", Action = "Index", Controller = "Staging", isCurrent = false });
            trail.Add(new Breadcrumb() { LinkText = "Create Staging", isCurrent = true });

            model.Breadcrumbs = trail;

            return View(model);
        }
        public ActionResult CreateStaging(GeneralStagingModel model)
        {
            StagingDataAccess dataAccess = new StagingDataAccess();

            if (!dataAccess.isCreateStagingModelValid(model))
            {
                ModelState.AddModelError("TableName", "The Staging Table Name must be unique");

                List<Breadcrumb> trail = new List<Breadcrumb>();

                trail.Add(new Breadcrumb() { LinkText = "Home", Action = "Index", Controller = "Home", isCurrent = false });
                trail.Add(new Breadcrumb() { LinkText = "Staging Index", Action = "Index", Controller = "Staging", isCurrent = false });
                trail.Add(new Breadcrumb() { LinkText = "Create Staging", isCurrent = true });

                model.Breadcrumbs = trail;

                return View(model);
            }

            try
            {
                dataAccess.createStagingTable(model);
            }
            catch (SqlException)
            {
                ModelState.AddModelError("", "An error occured when creating the Staging Table. Please ensure that the staging table name is unique and that all columns within it are uniquely named");

                List<Breadcrumb> trail = new List<Breadcrumb>();

                trail.Add(new Breadcrumb() { LinkText = "Home", Action = "Index", Controller = "Home", isCurrent = false });
                trail.Add(new Breadcrumb() { LinkText = "Staging Index", Action = "Index", Controller = "Staging", isCurrent = false });
                trail.Add(new Breadcrumb() { LinkText = "Create Staging", isCurrent = true });

                model.Breadcrumbs = trail;

                return View(model);
            }

            TempData["SuccessMessage"] = String.Format("The Staging Table - {0}, was successfully created", model.TableName);
            return RedirectToAction("Index");
        }