Ejemplo n.º 1
0
        public ActionResult Scenarios(string id)
        {
            var model = new ScenarioListViewModel();

            if (string.IsNullOrEmpty(id))
            {
                foreach (var scenarioGroup in _cardService.ScenarioGroups())
                {
                    model.ScenarioGroups.Add(new ScenarioGroupViewModel(scenarioGroup));
                }
            }
            else
            {
                var scenario = _cardService.GetScenario(id);

                if (scenario == null)
                {
                    return(HttpNotFound("I'm sorry Mario, your Princess is in another castle.\n\nNo scenario found matching this URL"));
                }

                model.Detail = new ScenarioViewModel(scenario);

                return(View(model));
            }

            return(View(model));
        }
Ejemplo n.º 2
0
        public ScenarioService(ProductRepository productRepository, CardRepository cardRepository)
        {
            this.cardRepository = cardRepository;
            this.cards          = cardRepository.Cards().ToList();
            foreach (var card in this.cards.Where(x => !string.IsNullOrEmpty(x.EncounterSet)))
            {
                if (!cardsByEncounterSet.ContainsKey(card.EncounterSet))
                {
                    cardsByEncounterSet[card.EncounterSet] = new List <Card>();
                }

                cardsByEncounterSet[card.EncounterSet].Add(card);
            }

            foreach (var group in productRepository.ProductGroups())
            {
                if (group.MainProduct != null)
                {
                    AddProduct(group.MainProduct, cards);
                }

                foreach (var product in group.ChildProducts)
                {
                    AddProduct(product, cards);
                }
            }

            listViewModel = new ScenarioListViewModel();
            var lookupCard = new Func <string, Card>((slug) => { return(cardRepository.FindBySlug(slug)); });

            foreach (var scenarioGroup in ScenarioGroups())
            {
                listViewModel.ScenarioGroups.Add(new ScenarioGroupViewModel(scenarioGroup, lookupCard));
            }
        }
        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);
        }
Ejemplo n.º 4
0
        public void FillExecutionResults(ScenarioListViewModel scenarioList)
        {
            void FillFolderScenarios(FolderViewModel folder)
            {
                folder.Scenarios.ForEach(FillExecutionResult);
                folder.Folders.ForEach(FillFolderScenarios);
            }

            scenarioList.Folders.ForEach(FillFolderScenarios);
            scenarioList.RootScenarios.ForEach(FillExecutionResult);
        }