public void Register(GameRegistrationData registrationData) { string iconPath = GetIconPath(registrationData.InstallationPath); registrationData.IconPath = iconPath; bool gameWasInstalled = IsRegistered(registrationData.LauncherKey, registrationData.Key); RegisterInRegistry(registrationData); CreateDesktopShortcut(registrationData, gameWasInstalled); }
private void RegisterInRegistry(GameRegistrationData registrationData) { string uninstallGameRegistryKey = GetUninstallGameRegistryKey( registrationData.LauncherKey, registrationData.Key); long?nullable = new long?(); long result; if (long.TryParse(registrationData.Size, out result)) { nullable = new long?(result); } if (!RegistryHelper.TryRegisterUninstallInfo( uninstallGameRegistryKey, new RegistryUninstallInfo() { Version = registrationData.Version, SizeBytes = nullable, InstallationPath = registrationData.InstallationPath, IconPath = registrationData.IconPath, Name = registrationData.Name, InstallationDate = registrationData.InstallationDate, UninstallCommand = registrationData.UninstallCommand, Publisher = "Innova Co. SARL" })) { throw new Exception( $"Can't register game {uninstallGameRegistryKey} in uninstall registry"); } if (!RegistryHelper.TryRegisterGameSoftwareData(new RegisterGameSoftwareInfo { Publisher = "Innova Co. SARL", LauncherKey = registrationData.LauncherKey, Version = registrationData.Version, InstallationPath = registrationData.InstallationPath, InstallationDate = new DateTime?(registrationData.InstallationDate), GameName = registrationData.Name })) { RegistryHelper.DeleteUninstallInfo(uninstallGameRegistryKey); throw new Exception( $"Can't register game {uninstallGameRegistryKey} in software registry"); } }
private void CreateDesktopShortcut( GameRegistrationData registrationData, bool gameWasInstalled) { try { File.WriteAllBytes(registrationData.IconPath, registrationData.IconData); if (gameWasInstalled) { return; } //ShortcutHelper.CreateOrReplaceDesktopShortcut(registrationData.Name, registrationData.IconPath, registrationData.RunnerPath, registrationData.RunnerArgs); } catch (Exception) { throw; } }