public IActionResult ShowResult(HierarchicalCreateVM model) { var data = _fileService.GetData(model.UploadFile, model.DataType); IDistance distance = DistanceFactory.GetDistance(model.DistanceType); IClusterDistance clusterDistance = ClusterDistanceFactory.GetClusterDistance(model.ClusterUnionType); var result = _service.Clustering(data, distance, clusterDistance, model.CountOfUnionsInStep); return(View(result)); }
public ClusterEntityDTO Clustering(List <ClusterEntityDTO> clusteringData, IDistance distance, IClusterDistance clusterDistance, int maxUnionInStep) { _distance = distance; _clusterDistance = clusterDistance; var data = Normlize(clusteringData); int step = 0; while (true) { data = Union(data, maxUnionInStep, ++step); if (data.Count == 1) { break; } } data[0].Name = "Root"; return(data[0]); }