public async void AlgorithmHandler(object parmameter) { string algorithm = parmameter.ToString(); if (this.AlgorithmStatus.TaskStatus == TaskStatus.Running && this.task != null && algorithm == this.AlgorithmStatistics.ExecutingAlgorithm) { this.AlgorithmStatus.TaskStatus = TaskStatus.WaitingToRun; this.Algorithms.Find(a => a.Title == algorithm).AlgorithmStatus = this.AlgorithmStatus.TaskStatus; this.Timer.PauseTimer(); return; } if (this.AlgorithmStatus.TaskStatus == TaskStatus.WaitingToRun && this.task != null && algorithm == this.AlgorithmStatistics.ExecutingAlgorithm) { this.AlgorithmStatus.TaskStatus = TaskStatus.Running; this.Algorithms.Find(a => a.Title == algorithm).AlgorithmStatus = this.AlgorithmStatus.TaskStatus; this.Timer.ResumeTimer(); return; } await this.TaskHandler(); this.CloneUnsortedDatasetIfSorted(); this.SortingInfo.Sorted = false; BaseSortingAlgorithm sortingAlgorithm = this.Algorithms.Find(a => a.Title == algorithm); sortingAlgorithm.Dataset = (ChartValues <int>) this.DataSet[0].Values; this.SetAlgorithmStatistics(sortingAlgorithm); await this.AlgorithmRunner(sortingAlgorithm.InitialiseSort); this.SortingInfo.Sorted = true; this.AlgorithmStatistics.ExecutingAlgorithm = string.Empty; }
public void SetAlgorithmStatistics(BaseSortingAlgorithm sortingAlgorithm) { this.AlgorithmStatistics.BestCase = sortingAlgorithm.BestCase; this.AlgorithmStatistics.AverageCase = sortingAlgorithm.AverageCase; this.AlgorithmStatistics.WorstCase = sortingAlgorithm.WorstCase; this.AlgorithmStatistics.ExecutingAlgorithm = sortingAlgorithm.Title; }