Esempio n. 1
0
        public MpqSettings(IUserSettings userSettings, IWoWFilesVerifier verifier)
        {
            this.userSettings = userSettings;
            this.verifier     = verifier;
            var saved = userSettings.Get <Data>();

            if (verifier.VerifyFolder(saved.Path) != WoWFilesType.Invalid)
            {
                path = saved.Path;
            }
        }
        public MpqSettingsViewModel(IMpqSettings mpqSettings,
                                    IWoWFilesVerifier verifier,
                                    IWindowManager windowManager,
                                    IMessageBoxService messageBoxService)
        {
            woWPath = mpqSettings.Path;

            Save = new DelegateCommand(() =>
            {
                mpqSettings.Path = woWPath;
                IsModified       = false;
                RaisePropertyChanged(nameof(IsModified));
            });

            PickFolder = new AsyncAutoCommand(async() =>
            {
                var folder = await windowManager.ShowFolderPickerDialog(woWPath ?? "");
                if (folder != null)
                {
                    if (verifier.VerifyFolder(folder) == WoWFilesType.Invalid)
                    {
                        await messageBoxService.ShowDialog(new MessageBoxFactory <bool>()
                                                           .SetTitle("WoW Client Data")
                                                           .SetMainInstruction("Invalid WoW folder")
                                                           .SetContent(
                                                               "This doesn't look like a correct Wrath of The Lich King folder.\n\nSelect main game folder (wow.exe file must be there).\n\nOther WoW versions are not supported now.")
                                                           .WithOkButton(true)
                                                           .Build());
                    }
                    else
                    {
                        WoWPath = folder;
                    }
                }
            });
        }