public async Task <IActionResult> Analysis(AnalysisDataSelectorViewModel viewModel)
        {
            Dataset dataset = null;

            if (viewModel.SelectedDatasetID.HasValue)
            {
                dataset = await repository.GetDatasetByID(viewModel.SelectedDatasetID.Value);
            }

            AnalysisModelBase analysisModel = AnalysisFactory.CreateAnalysisModel(viewModel.AnalysisName, dataset);

            //the view name is the same as the display name after spaces and hyphens removed (should be same as scriptfilename)
            return(View(viewModel.AnalysisName, analysisModel));
        }
        public async Task <IActionResult> AnalysisDataSelector(string analysisName)
        {
            IEnumerable <Script> scripts = await repository.GetScripts();

            AnalysisDataSelectorViewModel viewModel = new AnalysisDataSelectorViewModel();

            if (analysisName != null)
            {
                viewModel.AnalysisName = analysisName;

                Script script = scripts.Single(x => x.ScriptFileName == analysisName);

                if (!script.RequiresDataset)
                {
                    return(RedirectToAction("Analysis", viewModel));
                }

                viewModel.AnalysisDisplayName = script.ScriptDisplayName;
            }

            IEnumerable <DatasetViewModel> theDatasets = await repository.GetDatasetViewModels();

            ViewBag.HasDatasets = theDatasets.Any();

            if (theDatasets.Any())
            {
                //get the scripts
                viewModel.Scripts = scripts;

                //add the last uploaded dataset in first
                List <DatasetViewModel> datasetInfoList     = new List <DatasetViewModel>();
                DatasetViewModel        lastUploadedDataset = theDatasets.OrderByDescending(x => x.DatasetID).First();
                datasetInfoList.Add(lastUploadedDataset);

                //then add all the other datasets in alphabetical order
                foreach (DatasetViewModel dvm in theDatasets.Where(x => x.DatasetID != lastUploadedDataset.DatasetID).OrderBy(x => x.DatasetName).ThenBy(x => x.VersionNo))
                {
                    datasetInfoList.Add(dvm);
                }

                viewModel.Datasets = datasetInfoList.AsEnumerable <DatasetViewModel>();
            }

            return(View(viewModel));
        }
 public ActionResult AnalysisDataSelector(AnalysisDataSelectorViewModel viewModel)
 {
     return(RedirectToAction("Analysis", viewModel));
 }