public ScenarioListViewModel GetAll()
        {
            var allScenarios = _scenarioRepository.Query()
                               .Where(x => !x.IsDeleted)
                               .ToList();

            var allFolders = _folderRepository.Query()
                             .Where(x => !x.IsDeleted)
                             .ToList();

            FolderViewModel AssembleFolder(Folder folder)
            {
                var folderScenarios = allScenarios
                                      .Where(x => x.FolderId.GetValueOrDefault() == folder.Id)
                                      .Select(ScenarioMapper.ToScenarioViewModel)
                                      .ToList();

                var nestedFolders = allFolders
                                    .Where(x => x.ParentFolderId.GetValueOrDefault() == folder.Id)
                                    .Select(AssembleFolder)
                                    .ToList();

                return(new FolderViewModel()
                {
                    Id = folder.Id,
                    ParentId = folder.ParentFolderId,
                    Name = folder.Name,
                    Folders = nestedFolders,
                    Scenarios = folderScenarios
                });
            }

            var folders = allFolders
                          .Where(x => !x.ParentFolderId.HasValue)
                          .Select(AssembleFolder)
                          .ToList();

            var rootScenarios = allScenarios
                                .Where(x => !x.FolderId.HasValue)
                                .Select(ScenarioMapper.ToScenarioViewModel)
                                .ToList();

            var trashScenarios = _scenarioRepository.Query()
                                 .Where(x => x.IsDeleted)
                                 .AsEnumerable()
                                 .Select(ScenarioMapper.ToScenarioViewModel)
                                 .ToList();

            var scenarioList = new ScenarioListViewModel
            {
                Folders        = folders,
                RootScenarios  = rootScenarios,
                TrashScenarios = trashScenarios
            };

            _scenarioExecutorService.FillExecutionResults(scenarioList);

            return(scenarioList);
        }
Beispiel #2
0
        public List <int> RunAll()
        {
            var scenarioIds = _scenarioRepository.Query()
                              .Where(x => !x.IsDeleted)
                              .Select(x => x.Id)
                              .ToList();

            Task.Run(() => scenarioIds.ForEach(Execute));

            return(scenarioIds);
        }