Exemple #1
0
        private void DropIso(object sender, DragEventArgs e)
        {
            if (!e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                return;
            }

            var files = e.Data.GetData(DataFormats.FileDrop) as string[];

            files = files
                    .SelectMany(path => Directory.Exists(path) ? fileHelpers.GetFilesToDepth(path, 3) : new string[] { path })
                    .Where(file => new string[] { ".iso", ".mdf", ".nrg", ".bin", ".img", ".dump", ".gz", ".cso" }.Contains(Path.GetExtension(file).ToLowerInvariant()))
                    .OrderBy(file => file)
                    .ToArray();

            var versionToUse = SelectDefaultVersion();

            if (versionToUse == null)
            {
                MessageBox.Show("PCSX2 Configurator requires at least one installed PCSX2 version", "Error");
                return;
            }

            var importedGameModels = new List <GameModel>();

            foreach (var file in files)
            {
                var gameInfo = gameLibraryService.AddToLibrary(file);
                var model    = AddGameModel(gameInfo);
                importedGameModels.Add(model);
            }

            var emulatorPath = settings.Versions[versionToUse];
            var gameInfos    = importedGameModels.Select(x => x.GameInfo);

            Task.Run(() => identificationService.ImportGames(emulatorPath, gameInfos, (info, cover) =>
            {
                var model       = gameModels.First(model => model.GameInfo.Name == info.Name);
                model.GameInfo  = info;
                model.CoverPath = cover;
            }, () =>
            {
                GameModel.Configs = settings.Configs.Keys;
                if (userSettingsModel.AutoApplyRemoteConfigs)
                {
                    foreach (var model in importedGameModels)
                    {
                        model.Config  = model.RemoteConfig;
                        model.Version = versionToUse;
                    }
                }
            }));
        }