Example #1
0
        /// <summary>
        /// The controller method for the second phase in the process
        /// to create a Measure. This completes the population of the
        /// appropriate model.
        ///
        /// This is accessed from /Dataset/AddMeasureValues although this
        /// will not be reached directly but as a redirect from the first
        /// phase of the process.
        /// </summary>
        /// <param name="stagingTableName">The name of the Staging Table that the data is sourced from</param>
        /// <param name="measureName">The name of the Measure to be created</param>
        /// <param name="measureColumnStagingID">The Column in the Staging table that contains the measure values</param>
        /// <param name="geographyColumnID">The Column in the Staging table that contains the Geography</param>
        /// <returns></returns>
        public ActionResult AddMeasureValues(String stagingTableName, String measureName, int?measureColumnStagingID, int geographyColumnID, int geographyTypeID)
        {
            DatasetDataAccess dataAccess = new DatasetDataAccess();

            IEnumerable <Tuple <int, int> > mappings = (IEnumerable <Tuple <int, int> >)TempData["DimensionMappings"];

            MeasureValueModel model = dataAccess.populateMeasureValueModel(mappings, stagingTableName, measureName, measureColumnStagingID, geographyColumnID, geographyTypeID);

            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 Measure", Action = "", Controller = "", isCurrent = true
            });

            model.Breadcrumbs = trail;

            return(View(model));
        }
Example #2
0
        /// <summary>
        /// Controller method to navigate to the page for
        /// creating a Dimension. This takes the ID of a
        /// staging dataset which is used to find the values
        /// for the new dimension.
        ///
        /// Accessed via /Dataset/CreateDimension
        /// </summary>
        /// <param name="stagingDatasetID"> The Database ID of the staging dataset</param>
        /// <returns></returns>
        public ActionResult CreateDimension(int stagingDatasetID)
        {
            DatasetDataAccess dataAccess = new DatasetDataAccess();

            CreateDimensionModel model = dataAccess.PopulateCreateDimensionModel(stagingDatasetID);

            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 Dimension", Action = "", Controller = "", isCurrent = true
            });

            model.Breadcrumbs = trail;

            return(View(model));
        }
Example #3
0
        public ActionResult AddMeasureValues(MeasureValueModel model)
        {
            DatasetDataAccess dataAccess = new DatasetDataAccess();

            dataAccess.createMeasureValues(model);

            TempData["SuccessMessage"] = String.Format("The Measure - {0}, was successfully created", model.MeasureName);
            return(RedirectToAction("Index", "Staging"));
        }
Example #4
0
        public ActionResult CreateMeasure(CreateMeasureModel model)
        {
            DatasetDataAccess dataAccess = new DatasetDataAccess();

            if (ModelState.IsValid)
            {
                if (!dataAccess.isCreateMeasureModelValid(model))
                {
                    ModelState.AddModelError("", "An error occured when creating the Measure. Please ensure that the Measure name is unique and that Dimensions have been specified");

                    model = dataAccess.populateCreateMeasureModel(model.StagingDatasetID);

                    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 Measure", Action = "", Controller = "", isCurrent = true
                    });


                    model.Breadcrumbs = trail;

                    return(View(model));
                }
                dataAccess.createMeasure(model);

                IEnumerable <Tuple <int, int> > dimensionMappings = model.MeasureDetails.Where(x => x.DimensionValueID.HasValue).Select(x => new Tuple <int, int>(x.StagingColumnID, x.DimensionValueID.Value));

                TempData["DimensionMappings"] = dimensionMappings;

                return(RedirectToAction("AddMeasureValues", new
                {
                    stagingTableName = model.StagingTableName,
                    measureName = model.MeasureName,
                    measureColumnStagingID = model.MeasureColumnID,
                    geographyColumnID = model.GeographyColumnID,
                    geographyTypeID = model.GeographyTypeID
                }));
            }

            model = dataAccess.populateCreateMeasureModel(model.StagingDatasetID);

            return(View(model));
        }
Example #5
0
        public ActionResult CreateDimension(CreateDimensionModel model)
        {
            DatasetDataAccess dataAccess = new DatasetDataAccess();

            if (!dataAccess.IsCreateDimensionModelValid(model))
            {
                ModelState.AddModelError("DimensionName", "The Dimension Name must be unique");

                model = dataAccess.PopulateCreateDimensionModel(model.StagingDatasetID);

                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 Dimension", Action = "", Controller = "", isCurrent = true
                });

                model.Breadcrumbs = trail;

                return(View(model));
            }

            try
            {
                dataAccess.CreateDimension(model);
            }
            catch (SqlException)
            {
                ModelState.AddModelError("", "An error occured when creating the dimension. Please ensure that the Dimension Name is unique and that the values are unique within it.");

                model = dataAccess.PopulateCreateDimensionModel(model.StagingDatasetID);

                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 Dimension", Action = "", Controller = "", isCurrent = true
                });

                model.Breadcrumbs = trail;

                return(View(model));
            }

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