public ActionResult CreateView(CreateViewModel model)
        {
            DataViewDataAccess dataAccess = new DataViewDataAccess();

            if (!dataAccess.isCreateViewModelValid(model))
            {
                ModelState.AddModelError("ViewName", "The View Name must be unique");

                CreateViewModel tempModel = dataAccess.getDefaultCreateViewModel();

                model.GeographyTypes = tempModel.GeographyTypes;

                model.NewColumnModel = dataAccess.getDefaultColumnModel();

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

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

                model.Breadcrumbs = trail;
                return View(model);
            }

            try
            {
                dataAccess.CreateView(model);
            }
            catch (SqlException)
            {
                ModelState.AddModelError("", "An error occured when creating the Data View. Please ensure that the Data View Name is unique and that the columns are uniquely named within it.");

                CreateViewModel tempModel = dataAccess.getDefaultCreateViewModel();

                model.GeographyTypes = tempModel.GeographyTypes;

                model.NewColumnModel = dataAccess.getDefaultColumnModel();

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

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

                model.Breadcrumbs = trail;

                return View(model);
            }

            TempData["SuccessMessage"] = String.Format("The Data View - {0}, was successfully created", model.ViewName);

            return RedirectToAction("Index");
        }
        /// <summary>
        /// A controller method to navigate to the page where users can create
        /// a bespoke View. This populates the initial models for the view
        /// </summary>
        /// <returns>The View to be displayed</returns>
        public ActionResult CreateView()
        {
            DataViewDataAccess dataAccess = new DataViewDataAccess();

            CreateViewModel model = dataAccess.getDefaultCreateViewModel();

            List<ViewColumnModel> columns = new List<ViewColumnModel>();

            model.Columns = columns;

            model.NewColumnModel = dataAccess.getDefaultColumnModel();

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

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

            model.Breadcrumbs = trail;

            return View(model);
        }