public ActionResult Aggregate(ResultsModel resultsModel) { try { // union double lower = 10, upper = 0; foreach (var result in resultsModel.AllResults) { if (!result.IsFullWorkspace) { var splitInterval = (from i in result.OutputInterval.Split(new[] {";", "[", "]"}, StringSplitOptions.RemoveEmptyEntries) select i.Trim()).ToList(); if (splitInterval.Count() == 2) { double parsedLower = double.Parse(splitInterval[0]); if (parsedLower < lower) { lower = parsedLower; } double parsedUpper = double.Parse(splitInterval[1]); if (parsedUpper > upper) { upper = parsedUpper; } } } } // intersection with full results foreach (var result in resultsModel.AllResults) { if (result.IsFullWorkspace) { var splitInterval = (from i in result.OutputInterval.Split(new[] { ";", "[", "]" }, StringSplitOptions.RemoveEmptyEntries) select i.Trim()).ToList(); if (splitInterval.Count() == 2) { double parsedLower = double.Parse(splitInterval[0]); if (parsedLower < upper) { lower = parsedLower; } double parsedUpper = double.Parse(splitInterval[1]); if (parsedUpper > lower) { upper = parsedUpper; } } } } var interval = new Interval(lower, upper); var aggregatedResult = new ResultModel { IsAggregated = true, OutputInterval = interval.ToString(), OutputLinguistic = string.Join( ", ", DecisionMakerType2.IntervalToLinguistic(interval)) }; return PartialView("_Result", aggregatedResult); } catch (Exception ex) { return new HttpStatusCodeResult(System.Net.HttpStatusCode.InternalServerError); } }
public ActionResult LoadResult(int id) { try { var workspace = db.Workspaces.Single(w => w.Id == id); if (workspace != null && !string.IsNullOrEmpty(workspace.OutputInterval)) { var resultModel = new ResultModel { IsAggregated = false, IsFullWorkspace = workspace.IsComplete, IsSelectedForAggregation = false, OutputInterval = workspace.OutputInterval, OutputLinguistic = workspace.OutputLinguistic, WorkspaceID = workspace.Id, WorkspaceName = workspace.Name }; return PartialView("_Result", resultModel); } else { return null; } } catch (Exception ex) { return new HttpStatusCodeResult(HttpStatusCode.InternalServerError, ex.Message); } }