private void OnRemoveStarModel(StarGraph starModel) { StarGraphs.Remove(starModel); _intermediaryStarModels.Remove(starModel.BasedOn); }
/// <summary> /// Process next available step. /// Resets when starting from the beginning /// </summary> private async Task RunNextStep() { // Reset if limit has been reached if (CurrentPhase > 6) { _intermediaryCommonModels = new List <CommonModel>(); _intermediaryStarModels = new List <StarModel>(); _sampleService.ResetService(); CommonGraphs.Clear(); StarGraphs.Clear(); CurrentPhase = 0; } PhaseProgress = (CurrentPhase + 1) / 7d; phaseStopwatch.Restart(); switch (CurrentPhase) { case 0: // Run metadata phase IsStepping = true; await Task.Run(ExecuteMetadataPhase); break; case 1: // Run refinement phase await Task.Run(ExecuteRefinementPhase); if (CurrConfiguration.CombinationModule.Count == 0) { CurrentPhase++; } break; case 2: // Run star phase await Task.Run(ExecuteStarCombinePhase); break; case 3: // Run star fact phase await Task.Run(ExecuteStarFactPhase); break; case 4: // Run star dimension phase await Task.Run(ExecuteStarDimensionPhase); break; case 5: // Run star refinement phase await Task.Run(ExecuteStarRefinementPhase); break; case 6: // Run generation phase await Task.Run(ExecuteGenerationPhase); IsStepping = false; break; default: IsStepping = false; break; } phaseStopwatch.Stop(); Logger.Log(Logger.Level.Severe, $"Phase {CurrentPhase}: {phaseStopwatch.Elapsed}"); CurrentPhase++; }