Esempio n. 1
0
 private void OnRemoveStarModel(StarGraph starModel)
 {
     StarGraphs.Remove(starModel);
     _intermediaryStarModels.Remove(starModel.BasedOn);
 }
Esempio n. 2
0
        /// <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++;
        }