public override ISiteValidationResult ValidateSiteConfiguration(SiteModel siteModel) { var installPaths = GetInstallPaths(RegistryDisplayName); var validationResult = new SiteValidationResult(Site) { IsNew = !siteModel.Configured, IsEnabled = siteModel.Enabled, IsDetected = installPaths.Length > 0 }; if (!validationResult.IsDetected) { return(validationResult); } foreach (var installPath in installPaths) { var profilesDirectoryPath = Path.Combine(installPath, ProfilesFolder); try { var profilesDirectory = new DirectoryInfo(profilesDirectoryPath); if (!profilesDirectory.Exists) { continue; } foreach (var settingsFile in profilesDirectory.GetFiles(SettingsFile, SearchOption.AllDirectories)) { try { var xmlValues = ReadXmlValues(settingsFile.FullName, new[] { ProfileHandHistoryId, ProfileSaveHandHistoryId }); if (xmlValues.ContainsKey(ProfileHandHistoryId) && !string.IsNullOrWhiteSpace(xmlValues[ProfileHandHistoryId])) { validationResult.HandHistoryLocations.Add(xmlValues[ProfileHandHistoryId]); } if (xmlValues.ContainsKey(ProfileSaveHandHistoryId) && (!string.IsNullOrEmpty(xmlValues[ProfileSaveHandHistoryId]) && xmlValues[ProfileSaveHandHistoryId] != CorrectSaveHandHistoryTag)) { var issue = string.Format(CommonResourceManager.Instance.GetResourceString("Error_WPN_Validation_SaveHandHistory"), RegistryDisplayName, settingsFile.Directory?.Name); validationResult.Issues.Add(issue); } } catch (Exception ex) { LogProvider.Log.Error(this, $"Error occurred during reading {settingsFile.FullName}", ex); } } } catch (Exception e) { LogProvider.Log.Error(this, $"Could not read data from {profilesDirectoryPath}", e); } } return(validationResult); }
public override ISiteValidationResult ValidateSiteConfiguration(SiteModel siteModel) { var validationResult = new SiteValidationResult(Site) { IsNew = !siteModel.Configured, IsDetected = DetectSite(), IsEnabled = siteModel.Enabled, }; return(validationResult); }
private void InstallAuditIni(SiteValidationResult validationResult) { try { var installPaths = GetInstallPaths(); if (installPaths.Count == 0) { return; } var isPokerStarsRunning = IsPokerStarsRunning(); var auditPath = GetAuditPath(); if (!Directory.Exists(auditPath)) { Directory.CreateDirectory(auditPath); LogProvider.Log.Info($"Created '{auditPath}' folder"); } foreach (var installPath in installPaths) { var launchFile = Path.Combine(installPath.FullName, psClientLaunchFile); TryLogPSLaunchFileVersion(launchFile); var auditIniFile = Path.Combine(installPath.FullName, auditIni); if (File.Exists(auditIniFile)) { ValidateAuditInitFile(auditIniFile, auditPath); continue; } CreateAuditInitFile(auditIniFile, auditPath); if (isPokerStarsRunning) { var issue = string.Format(CommonResourceManager.Instance.GetResourceString("Error_PS_Validation_ZoomSupport"), installPath.Name); validationResult.Issues.Add(issue); } } } catch (Exception ex) { LogProvider.Log.Error(this, "Could not enable zoom support for PS", ex); } }
public override ISiteValidationResult ValidateSiteConfiguration(SiteModel siteModel) { if (siteModel == null) { return(null); } // since we don't show HandHistoryLocations on site setup form, we don't need to spend time on reading dirs var validationResult = new SiteValidationResult(Site) { IsNew = !siteModel.Configured, HandHistoryLocations = new List <string>(), IsEnabled = siteModel.Enabled, IsAutoCenter = true }; var settingsModel = ServiceLocator.Current.GetInstance <ISettingsService>().GetSettings(); foreach (var siteName in SiteNames) { var installPath = GetSiteInstallPath(siteName); if (!string.IsNullOrEmpty(installPath)) { if (settingsModel.GeneralSettings.IsAdvancedLoggingEnabled) { LogProvider.Log.Info($"Site detection: IPoker[{siteName}]: {installPath}"); } try { var hhDirs = Directory.EnumerateDirectories(installPath, "*", SearchOption.AllDirectories) .Where(x => handHistoryLocationPattern.Value.IsMatch(x)).ToArray(); validationResult.HandHistoryLocations.AddRange(hhDirs); } catch (Exception e) { LogProvider.Log.Error(this, $"Couldn't get hand history locations for {siteName} at {installPath}", e); } validationResult.IsDetected = true; } } return(validationResult); }
public override ISiteValidationResult ValidateSiteConfiguration(SiteModel siteModel) { var validationResult = new SiteValidationResult(Site) { IsNew = !siteModel.Configured, IsDetected = RegistryUtils.UninstallRegistryContainsKeys(uninstallRegistryKeys), IsEnabled = siteModel.Enabled, HandHistoryLocations = GetHandHistoryFolders().ToList(), }; if (!validationResult.IsDetected) { return(validationResult); } return(validationResult); }
public override ISiteValidationResult ValidateSiteConfiguration(SiteModel siteModel) { if (siteModel == null) { return(null); } var handHistoriesLocation = GetHandHistoryFolders(); var validationResult = new SiteValidationResult(Site) { IsNew = !siteModel.Configured, IsDetected = handHistoriesLocation.Length > 0, IsEnabled = siteModel.Enabled, HandHistoryLocations = handHistoriesLocation.ToList() }; return(validationResult); }
/// <summary> /// Validates site settings in both client and DH /// </summary> /// <param name="siteModel">Model with site settings</param> /// <returns>The result of validation</returns> public override ISiteValidationResult ValidateSiteConfiguration(SiteModel siteModel) { if (siteModel == null) { return(null); } var configurationDirectories = GetConfigurationDirectories(); var validationResult = new SiteValidationResult(Site) { IsNew = !siteModel.Configured, HandHistoryLocations = GetHandHistoryFolders().ToList(), IsDetected = configurationDirectories.Count > 0, IsEnabled = siteModel.Enabled, FastPokerEnabled = true }; InstallAuditIni(validationResult); foreach (var configurationDirectory in configurationDirectories) { try { var settingsFile = Path.Combine(configurationDirectory.FullName, settingsFileName); if (!File.Exists(settingsFile)) { continue; } LogProvider.Log.Info($"Reading PS settings from {settingsFile}"); var localeSetting = IniFileHelpers.ReadValue(iniSection, iniKeyLocale, settingsFile); var hhLocaleSetting = IniFileHelpers.ReadValue(iniSection, iniKeyHHLocale, settingsFile); var tsLocaleSetting = IniFileHelpers.ReadValue(iniSection, iniKeyTSLocale, settingsFile); var hhEnabledSetting = IniFileHelpers.ReadValue(iniSection, iniKeySaveMyHands, settingsFile, "0"); var tsEnabledSetting = IniFileHelpers.ReadValue(iniSection, iniKeySaveMyTournSummaries, settingsFile, "0"); LogProvider.Log.Info($"PS Settings: Locale: {localeSetting}; HHLocale: {hhLocaleSetting}; TSLocale: {tsLocaleSetting}"); var isLocaleSettingCorrect = correctLanguageSettings.Contains(localeSetting); bool isHHLanguageCorrect = string.IsNullOrWhiteSpace(hhLocaleSetting) ? isLocaleSettingCorrect : correctLanguageSettings.Contains(hhLocaleSetting); bool isTSLanguageCorrect = string.IsNullOrWhiteSpace(tsLocaleSetting) ? isLocaleSettingCorrect : correctLanguageSettings.Contains(tsLocaleSetting); bool isHHEnabled = hhEnabledSetting == "1"; bool isTSEnabled = tsEnabledSetting == "1"; if (!isHHLanguageCorrect || !isTSLanguageCorrect || !isHHEnabled || !isTSEnabled) { if (!isHHEnabled) { var issue = string.Format(CommonResourceManager.Instance.GetResourceString("Error_PS_Validation_SaveMyHandHistory"), configurationDirectory.Name); validationResult.Issues.Add(issue); } if (!isTSEnabled) { var issue = string.Format(CommonResourceManager.Instance.GetResourceString("Error_PS_Validation_SaveTournamentSummaries"), configurationDirectory.Name); validationResult.Issues.Add(issue); } if (!isHHLanguageCorrect) { var issue = string.Format(CommonResourceManager.Instance.GetResourceString("Error_PS_Validation_HHLanguage"), configurationDirectory.Name); validationResult.Issues.Add(issue); } if (!isTSLanguageCorrect) { var issue = string.Format(CommonResourceManager.Instance.GetResourceString("Error_PS_Validation_TSLanguage"), configurationDirectory.Name); validationResult.Issues.Add(issue); } } } catch (Exception ex) { LogProvider.Log.Error(this, "Error during reading of the PS settings", ex); } } return(validationResult); }
public override ISiteValidationResult ValidateSiteConfiguration(SiteModel siteModel) { var validationResult = new SiteValidationResult(Site) { IsNew = !siteModel.Configured, IsDetected = IsInstalled(), IsEnabled = siteModel.Enabled }; var configurationDirectories = GetConfigurationDirectories(); foreach (var configurationDirectory in configurationDirectories) { try { var settingsFiles = configurationDirectory.GetFiles(settingsFileName, SearchOption.AllDirectories); foreach (var settingsFile in settingsFiles) { try { if (settingsFile.Directory.Parent.FullName != configurationDirectory.FullName) { continue; } var xmlValues = ReadXmlValues(settingsFile.FullName, new[] { HandHistoryPathTag, IsEnableHistoryTag }); if (xmlValues.ContainsKey(HandHistoryPathTag) && !string.IsNullOrWhiteSpace(xmlValues[HandHistoryPathTag])) { validationResult.HandHistoryLocations.Add(xmlValues[HandHistoryPathTag]); } if (xmlValues.ContainsKey(IsEnableHistoryTag) && (xmlValues[IsEnableHistoryTag] != CorrectIsEnableHistorySetting)) { var issue = string.Format(CommonResourceManager.Instance.GetResourceString("Error_888_Validation_IsEnableHistory"), settingsFile.Directory.Parent.Name); validationResult.Issues.Add(issue); } } catch (Exception ex) { LogProvider.Log.Error(this, $"Error occurred during reading {settingsFile.FullName}", ex); } } } catch (Exception e) { LogProvider.Log.Error(this, $"Could not read data from {configurationDirectory.FullName}", e); } } try { foreach (var registryKey in LanguageRegistryKeys) { var languageRegistryKey = Registry.CurrentUser.OpenSubKey(registryKey); if (languageRegistryKey != null) { var language = Convert.ToUInt32(languageRegistryKey.GetValue(LanguageRegistryKeyValue)); if (language != 0) { var issue = string.Format(CommonResourceManager.Instance.GetResourceString("Error_888_Validation_HHLanguage")); validationResult.Issues.Add(issue); } } } } catch (Exception ex) { LogProvider.Log.Error(this, $"Could not read '{LanguageRegistryKeys}'", ex); } return(validationResult); }