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"); }
/// <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); }
/// <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); }
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); }
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"); }