Ejemplo n.º 1
0
        private async Task <List <EncounterGroupViewModel> > BuildEncounters(ReportData reportData)
        {
            var result    = new List <EncounterGroupViewModel>();
            var bossNames = new HashSet <string>(reportData.fights.Select(s => s.name));

            foreach (var bossName in bossNames)
            {
                var encounterGroup = new EncounterGroupViewModel();
                encounterGroup.BossName = bossName;
                encounterGroup.ReportId = Report.ReportId;
                result.Add(encounterGroup);
            }

            IEncounterConfigurationManager    encounterConfigurationManager;
            List <EncounterConfigurationData> configurations = new List <EncounterConfigurationData>();

            if (DI.TryGetService <IEncounterConfigurationManager>(out encounterConfigurationManager))
            {
                configurations = await encounterConfigurationManager.GetAllAsync();
            }
            var configurationViewModels = configurations.Select(config => new EncounterConfigurationViewModel(config)).ToList();

            foreach (var group in result)
            {
                var configurationMatch = configurationViewModels.FirstOrDefault(d => d.IsValidForBoss(group.BossName));
                group.Configuration = configurationMatch ?? new EncounterConfigurationViewModel()
                {
                    BossMapping = group.BossName
                };
            }

            var view = CollectionViewSource.GetDefaultView(result);

            if (result.Count > 0)
            {
                view?.MoveCurrentToFirst();
            }

            return(result);
        }
Ejemplo n.º 2
0
 private async Task RunAnalysisAsync(EncounterGroupViewModel encounterGroupViewModel, SimpleListItemViewModel notification)
 {
     await encounterGroupViewModel.LoadAsync(notification);
 }