SilentOps.cs 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.IO;
  4. using System.Threading.Tasks;
  5. namespace Optimizer
  6. {
  7. internal static class SilentOps
  8. {
  9. internal static SilentConfig CurrentSilentConfig;
  10. internal static SilentConfig GetSilentConfig(string path)
  11. {
  12. try
  13. {
  14. CurrentSilentConfig = JsonConvert.DeserializeObject<SilentConfig>(File.ReadAllText(path));
  15. }
  16. catch (Exception ex)
  17. {
  18. ErrorLogger.LogError("SilentOps.GetSilentConfig", ex.Message, ex.StackTrace);
  19. CurrentSilentConfig = null;
  20. }
  21. return CurrentSilentConfig;
  22. }
  23. // silent config processing for universal tweaks
  24. internal static void ProcessSilentConfigGeneral()
  25. {
  26. if (CurrentSilentConfig.EnablePerformanceTweaks.HasValue)
  27. {
  28. if (CurrentSilentConfig.EnablePerformanceTweaks.Value)
  29. {
  30. Optimize.EnablePerformanceTweaks();
  31. }
  32. else
  33. {
  34. Optimize.DisablePerformanceTweaks();
  35. }
  36. }
  37. if (CurrentSilentConfig.DisableNetworkThrottling.HasValue)
  38. {
  39. if (CurrentSilentConfig.DisableNetworkThrottling.Value)
  40. {
  41. Optimize.DisableNetworkThrottling();
  42. }
  43. else
  44. {
  45. Optimize.EnableNetworkThrottling();
  46. }
  47. }
  48. if (CurrentSilentConfig.DisableWindowsDefender.HasValue)
  49. {
  50. if (CurrentSilentConfig.DisableWindowsDefender.Value)
  51. {
  52. Optimize.DisableDefender();
  53. }
  54. else
  55. {
  56. Optimize.EnableDefender();
  57. }
  58. }
  59. if (CurrentSilentConfig.DisableSystemRestore.HasValue)
  60. {
  61. if (CurrentSilentConfig.DisableSystemRestore.Value)
  62. {
  63. Optimize.DisableSystemRestore();
  64. }
  65. else
  66. {
  67. Optimize.EnableSystemRestore();
  68. }
  69. }
  70. if (CurrentSilentConfig.DisablePrintService.HasValue)
  71. {
  72. if (CurrentSilentConfig.DisablePrintService.Value)
  73. {
  74. Optimize.DisablePrintService();
  75. }
  76. else
  77. {
  78. Optimize.EnablePrintService();
  79. }
  80. }
  81. if (CurrentSilentConfig.DisableMediaPlayerSharing.HasValue)
  82. {
  83. if (CurrentSilentConfig.DisableMediaPlayerSharing.Value)
  84. {
  85. Optimize.DisableMediaPlayerSharing();
  86. }
  87. else
  88. {
  89. Optimize.EnableMediaPlayerSharing();
  90. }
  91. }
  92. if (CurrentSilentConfig.DisableErrorReporting.HasValue)
  93. {
  94. if (CurrentSilentConfig.DisableErrorReporting.Value)
  95. {
  96. Optimize.DisableErrorReporting();
  97. }
  98. else
  99. {
  100. Optimize.EnableErrorReporting();
  101. }
  102. }
  103. if (CurrentSilentConfig.DisableHomeGroup.HasValue)
  104. {
  105. if (CurrentSilentConfig.DisableHomeGroup.Value)
  106. {
  107. Optimize.DisableHomeGroup();
  108. }
  109. else
  110. {
  111. Optimize.EnableHomeGroup();
  112. }
  113. }
  114. if (CurrentSilentConfig.DisableSuperfetch.HasValue)
  115. {
  116. if (CurrentSilentConfig.DisableSuperfetch.Value)
  117. {
  118. Optimize.DisableSuperfetch();
  119. }
  120. else
  121. {
  122. Optimize.EnableSuperfetch();
  123. }
  124. }
  125. if (CurrentSilentConfig.DisableTelemetryTasks.HasValue)
  126. {
  127. if (CurrentSilentConfig.DisableTelemetryTasks.Value)
  128. {
  129. Optimize.DisableTelemetryTasks();
  130. }
  131. else
  132. {
  133. Optimize.EnableTelemetryTasks();
  134. }
  135. }
  136. if (CurrentSilentConfig.DisableOffice2016Telemetry.HasValue)
  137. {
  138. if (CurrentSilentConfig.DisableOffice2016Telemetry.Value)
  139. {
  140. Optimize.DisableOffice2016Telemetry();
  141. }
  142. else
  143. {
  144. Optimize.EnableOffice2016Telemetry();
  145. }
  146. }
  147. if (CurrentSilentConfig.DisableCompatibilityAssistant.HasValue)
  148. {
  149. if (CurrentSilentConfig.DisableCompatibilityAssistant.Value)
  150. {
  151. Optimize.DisableCompatibilityAssistant();
  152. }
  153. else
  154. {
  155. Optimize.EnableCompatibilityAssistant();
  156. }
  157. }
  158. if (CurrentSilentConfig.DisableFaxService.HasValue)
  159. {
  160. if (CurrentSilentConfig.DisableFaxService.Value)
  161. {
  162. Optimize.DisableFaxService();
  163. }
  164. else
  165. {
  166. Optimize.EnableFaxService();
  167. }
  168. }
  169. if (CurrentSilentConfig.DisableSmartScreen.HasValue)
  170. {
  171. if (CurrentSilentConfig.DisableSmartScreen.Value)
  172. {
  173. Optimize.DisableSmartScreen();
  174. }
  175. else
  176. {
  177. Optimize.EnableSmartScreen();
  178. }
  179. }
  180. if (CurrentSilentConfig.DisableStickyKeys.HasValue)
  181. {
  182. if (CurrentSilentConfig.DisableStickyKeys.Value)
  183. {
  184. Optimize.DisableStickyKeys();
  185. }
  186. else
  187. {
  188. Optimize.EnableStickyKeys();
  189. }
  190. }
  191. }
  192. // silent config processing for Windows 8 tweaks
  193. internal static void ProcessSilentConfigWindows8()
  194. {
  195. if (CurrentSilentConfig.DisableOneDrive.HasValue)
  196. {
  197. if (CurrentSilentConfig.DisableOneDrive.Value)
  198. {
  199. Optimize.DisableOneDrive();
  200. }
  201. else
  202. {
  203. Optimize.EnableOneDrive();
  204. }
  205. }
  206. }
  207. // silent config processing for Windows 10 tweaks
  208. internal static void ProcessSilentConfigWindows10()
  209. {
  210. if (CurrentSilentConfig.EnableLegacyVolumeSlider.HasValue)
  211. {
  212. if (CurrentSilentConfig.EnableLegacyVolumeSlider.Value)
  213. {
  214. Optimize.EnableLegacyVolumeSlider();
  215. }
  216. else
  217. {
  218. Optimize.DisableLegacyVolumeSlider();
  219. }
  220. }
  221. if (CurrentSilentConfig.EnableTaskbarColor.HasValue)
  222. {
  223. if (CurrentSilentConfig.EnableTaskbarColor.Value)
  224. {
  225. Optimize.EnableTaskbarColor();
  226. }
  227. else
  228. {
  229. Optimize.DisableTaskbarColor();
  230. }
  231. }
  232. if (CurrentSilentConfig.DisableQuickAccessHistory.HasValue)
  233. {
  234. if (CurrentSilentConfig.DisableQuickAccessHistory.Value)
  235. {
  236. Optimize.DisableQuickAccessHistory();
  237. }
  238. else
  239. {
  240. Optimize.EnableQuickAccessHistory();
  241. }
  242. }
  243. if (CurrentSilentConfig.DisableStartMenuAds.HasValue)
  244. {
  245. if (CurrentSilentConfig.DisableStartMenuAds.Value)
  246. {
  247. Optimize.DisableStartMenuAds();
  248. }
  249. else
  250. {
  251. Optimize.EnableStartMenuAds();
  252. }
  253. }
  254. if (CurrentSilentConfig.EnableDarkTheme.HasValue)
  255. {
  256. if (CurrentSilentConfig.EnableDarkTheme.Value)
  257. {
  258. Optimize.EnableDarkTheme();
  259. }
  260. else
  261. {
  262. Optimize.EnableLightTheme();
  263. }
  264. }
  265. if (CurrentSilentConfig.UninstallOneDrive.HasValue)
  266. {
  267. if (CurrentSilentConfig.UninstallOneDrive.Value)
  268. {
  269. Task t = new Task(() => Optimize.UninstallOneDrive());
  270. t.Start();
  271. }
  272. else
  273. {
  274. Task t = new Task(() => Optimize.InstallOneDrive());
  275. t.Start();
  276. }
  277. }
  278. if (CurrentSilentConfig.DisableMyPeople.HasValue)
  279. {
  280. if (CurrentSilentConfig.DisableMyPeople.Value)
  281. {
  282. Optimize.DisableMyPeople();
  283. }
  284. else
  285. {
  286. Optimize.EnableMyPeople();
  287. }
  288. }
  289. if (CurrentSilentConfig.EnableLongPaths.HasValue)
  290. {
  291. if (CurrentSilentConfig.EnableLongPaths.Value)
  292. {
  293. Optimize.EnableLongPaths();
  294. }
  295. else
  296. {
  297. Optimize.DisableLongPaths();
  298. }
  299. }
  300. if (CurrentSilentConfig.DisableAutomaticUpdates.HasValue)
  301. {
  302. if (CurrentSilentConfig.DisableAutomaticUpdates.Value)
  303. {
  304. Optimize.DisableAutomaticUpdates();
  305. }
  306. else
  307. {
  308. Optimize.EnableAutomaticUpdates();
  309. }
  310. }
  311. if (CurrentSilentConfig.ExcludeDrivers.HasValue)
  312. {
  313. if (CurrentSilentConfig.ExcludeDrivers.Value)
  314. {
  315. Optimize.ExcludeDrivers();
  316. }
  317. else
  318. {
  319. Optimize.IncludeDrivers();
  320. }
  321. }
  322. if (CurrentSilentConfig.DisableTelemetryServices.HasValue)
  323. {
  324. if (CurrentSilentConfig.DisableTelemetryServices.Value)
  325. {
  326. Optimize.DisableTelemetryServices();
  327. }
  328. else
  329. {
  330. Optimize.EnableTelemetryServices();
  331. }
  332. }
  333. if (CurrentSilentConfig.DisablePrivacyOptions.HasValue)
  334. {
  335. if (CurrentSilentConfig.DisablePrivacyOptions.Value)
  336. {
  337. Optimize.EnhancePrivacy();
  338. }
  339. else
  340. {
  341. Optimize.CompromisePrivacy();
  342. }
  343. }
  344. if (CurrentSilentConfig.DisableCortana.HasValue)
  345. {
  346. if (CurrentSilentConfig.DisableCortana.Value)
  347. {
  348. Optimize.DisableCortana();
  349. }
  350. else
  351. {
  352. Optimize.EnableCortana();
  353. }
  354. }
  355. if (CurrentSilentConfig.DisableSensorServices.HasValue)
  356. {
  357. if (CurrentSilentConfig.DisableSensorServices.Value)
  358. {
  359. Optimize.DisableSensorServices();
  360. }
  361. else
  362. {
  363. Optimize.EnableSensorServices();
  364. }
  365. }
  366. if (CurrentSilentConfig.DisableWindowsInk.HasValue)
  367. {
  368. if (CurrentSilentConfig.DisableWindowsInk.Value)
  369. {
  370. Optimize.DisableWindowsInk();
  371. }
  372. else
  373. {
  374. Optimize.EnableWindowsInk();
  375. }
  376. }
  377. if (CurrentSilentConfig.DisableSpellingTyping.HasValue)
  378. {
  379. if (CurrentSilentConfig.DisableSpellingTyping.Value)
  380. {
  381. Optimize.DisableSpellingAndTypingFeatures();
  382. }
  383. else
  384. {
  385. Optimize.EnableSpellingAndTypingFeatures();
  386. }
  387. }
  388. if (CurrentSilentConfig.DisableXboxLive.HasValue)
  389. {
  390. if (CurrentSilentConfig.DisableXboxLive.Value)
  391. {
  392. Optimize.DisableXboxLive();
  393. }
  394. else
  395. {
  396. Optimize.EnableXboxLive();
  397. }
  398. }
  399. if (CurrentSilentConfig.DisableGameBar.HasValue)
  400. {
  401. if (CurrentSilentConfig.DisableGameBar.Value)
  402. {
  403. Optimize.DisableGameBar();
  404. }
  405. else
  406. {
  407. Optimize.EnableGameBar();
  408. }
  409. }
  410. if (CurrentSilentConfig.DisableInsiderService.HasValue)
  411. {
  412. if (CurrentSilentConfig.DisableInsiderService.Value)
  413. {
  414. Optimize.DisableInsiderService();
  415. }
  416. else
  417. {
  418. Optimize.EnableInsiderService();
  419. }
  420. }
  421. if (CurrentSilentConfig.DisableFeatureUpdates.HasValue)
  422. {
  423. if (CurrentSilentConfig.DisableFeatureUpdates.Value)
  424. {
  425. Optimize.DisableForcedFeatureUpdates();
  426. }
  427. else
  428. {
  429. Optimize.EnableForcedFeatureUpdates();
  430. }
  431. }
  432. if (CurrentSilentConfig.DisableCloudClipboard.HasValue)
  433. {
  434. if (CurrentSilentConfig.DisableCloudClipboard.Value)
  435. {
  436. Optimize.DisableCloudClipboard();
  437. }
  438. else
  439. {
  440. Optimize.EnableCloudClipboard();
  441. }
  442. }
  443. if (CurrentSilentConfig.RemoveCastToDevice.HasValue)
  444. {
  445. if (CurrentSilentConfig.RemoveCastToDevice.Value)
  446. {
  447. Optimize.RemoveCastToDevice();
  448. }
  449. else
  450. {
  451. Optimize.AddCastToDevice();
  452. }
  453. }
  454. if (CurrentSilentConfig.DisableActionCenter.HasValue)
  455. {
  456. if (CurrentSilentConfig.DisableActionCenter.Value)
  457. {
  458. Optimize.DisableActionCenter();
  459. }
  460. else
  461. {
  462. Optimize.EnableActionCenter();
  463. }
  464. }
  465. }
  466. // updating options using silent config
  467. internal static void SilentUpdateOptionsGeneral()
  468. {
  469. if (CurrentSilentConfig.EnablePerformanceTweaks.HasValue)
  470. {
  471. Options.CurrentOptions.EnablePerformanceTweaks = CurrentSilentConfig.EnablePerformanceTweaks.Value;
  472. }
  473. if (CurrentSilentConfig.DisableNetworkThrottling.HasValue)
  474. {
  475. Options.CurrentOptions.DisableNetworkThrottling = CurrentSilentConfig.DisableNetworkThrottling.Value;
  476. }
  477. if (CurrentSilentConfig.DisableWindowsDefender.HasValue)
  478. {
  479. Options.CurrentOptions.DisableWindowsDefender = CurrentSilentConfig.DisableWindowsDefender.Value;
  480. }
  481. if (CurrentSilentConfig.DisableSystemRestore.HasValue)
  482. {
  483. Options.CurrentOptions.DisableSystemRestore = CurrentSilentConfig.DisableSystemRestore.Value;
  484. }
  485. if (CurrentSilentConfig.DisablePrintService.HasValue)
  486. {
  487. Options.CurrentOptions.DisablePrintService = CurrentSilentConfig.DisablePrintService.Value;
  488. }
  489. if (CurrentSilentConfig.DisableMediaPlayerSharing.HasValue)
  490. {
  491. Options.CurrentOptions.DisableMediaPlayerSharing = CurrentSilentConfig.DisableMediaPlayerSharing.Value;
  492. }
  493. if (CurrentSilentConfig.DisableErrorReporting.HasValue)
  494. {
  495. Options.CurrentOptions.DisableErrorReporting = CurrentSilentConfig.DisableErrorReporting.Value;
  496. }
  497. if (CurrentSilentConfig.DisableHomeGroup.HasValue)
  498. {
  499. Options.CurrentOptions.DisableHomeGroup = CurrentSilentConfig.DisableHomeGroup.Value;
  500. }
  501. if (CurrentSilentConfig.DisableSuperfetch.HasValue)
  502. {
  503. Options.CurrentOptions.DisableSuperfetch = CurrentSilentConfig.DisableSuperfetch.Value;
  504. }
  505. if (CurrentSilentConfig.DisableTelemetryTasks.HasValue)
  506. {
  507. Options.CurrentOptions.DisableTelemetryTasks = CurrentSilentConfig.DisableTelemetryTasks.Value;
  508. }
  509. if (CurrentSilentConfig.DisableOffice2016Telemetry.HasValue)
  510. {
  511. Options.CurrentOptions.DisableOffice2016Telemetry = CurrentSilentConfig.DisableOffice2016Telemetry.Value;
  512. }
  513. if (CurrentSilentConfig.DisableCompatibilityAssistant.HasValue)
  514. {
  515. Options.CurrentOptions.DisableCompatibilityAssistant = CurrentSilentConfig.DisableCompatibilityAssistant.Value;
  516. }
  517. if (CurrentSilentConfig.DisableFaxService.HasValue)
  518. {
  519. Options.CurrentOptions.DisableFaxService = CurrentSilentConfig.DisableFaxService.Value;
  520. }
  521. if (CurrentSilentConfig.DisableSmartScreen.HasValue)
  522. {
  523. Options.CurrentOptions.DisableSmartScreen = CurrentSilentConfig.DisableSmartScreen.Value;
  524. }
  525. if (CurrentSilentConfig.DisableStickyKeys.HasValue)
  526. {
  527. Options.CurrentOptions.DisableStickyKeys = CurrentSilentConfig.DisableStickyKeys.Value;
  528. }
  529. }
  530. internal static void SilentUpdateOptions8()
  531. {
  532. if (CurrentSilentConfig.DisableOneDrive.HasValue)
  533. {
  534. Options.CurrentOptions.DisableOneDrive = CurrentSilentConfig.DisableOneDrive.Value;
  535. }
  536. }
  537. internal static void SilentUpdateOptions10()
  538. {
  539. if (CurrentSilentConfig.EnableLegacyVolumeSlider.HasValue)
  540. {
  541. Options.CurrentOptions.EnableLegacyVolumeSlider = CurrentSilentConfig.EnableLegacyVolumeSlider.Value;
  542. }
  543. if (CurrentSilentConfig.EnableTaskbarColor.HasValue)
  544. {
  545. Options.CurrentOptions.EnableTaskbarColor = CurrentSilentConfig.EnableTaskbarColor.Value;
  546. }
  547. if (CurrentSilentConfig.DisableQuickAccessHistory.HasValue)
  548. {
  549. Options.CurrentOptions.DisableQuickAccessHistory = CurrentSilentConfig.DisableQuickAccessHistory.Value;
  550. }
  551. if (CurrentSilentConfig.DisableStartMenuAds.HasValue)
  552. {
  553. Options.CurrentOptions.DisableStartMenuAds = CurrentSilentConfig.DisableStartMenuAds.Value;
  554. }
  555. if (CurrentSilentConfig.EnableDarkTheme.HasValue)
  556. {
  557. Options.CurrentOptions.EnableDarkTheme = CurrentSilentConfig.EnableDarkTheme.Value;
  558. }
  559. if (CurrentSilentConfig.UninstallOneDrive.HasValue)
  560. {
  561. Options.CurrentOptions.UninstallOneDrive = CurrentSilentConfig.UninstallOneDrive.Value;
  562. }
  563. if (CurrentSilentConfig.DisableMyPeople.HasValue)
  564. {
  565. Options.CurrentOptions.DisableMyPeople = CurrentSilentConfig.DisableMyPeople.Value;
  566. }
  567. if (CurrentSilentConfig.EnableLongPaths.HasValue)
  568. {
  569. Options.CurrentOptions.EnableLongPaths = CurrentSilentConfig.EnableLongPaths.Value;
  570. }
  571. if (CurrentSilentConfig.DisableAutomaticUpdates.HasValue)
  572. {
  573. Options.CurrentOptions.DisableAutomaticUpdates = CurrentSilentConfig.DisableAutomaticUpdates.Value;
  574. }
  575. if (CurrentSilentConfig.ExcludeDrivers.HasValue)
  576. {
  577. Options.CurrentOptions.ExcludeDrivers = CurrentSilentConfig.ExcludeDrivers.Value;
  578. }
  579. if (CurrentSilentConfig.DisableTelemetryServices.HasValue)
  580. {
  581. Options.CurrentOptions.DisableTelemetryServices = CurrentSilentConfig.DisableTelemetryServices.Value;
  582. }
  583. if (CurrentSilentConfig.DisablePrivacyOptions.HasValue)
  584. {
  585. Options.CurrentOptions.DisablePrivacyOptions = CurrentSilentConfig.DisablePrivacyOptions.Value;
  586. }
  587. if (CurrentSilentConfig.DisableCortana.HasValue)
  588. {
  589. Options.CurrentOptions.DisableCortana = CurrentSilentConfig.DisableCortana.Value;
  590. }
  591. if (CurrentSilentConfig.DisableSensorServices.HasValue)
  592. {
  593. Options.CurrentOptions.DisableSensorServices = CurrentSilentConfig.DisableSensorServices.Value;
  594. }
  595. if (CurrentSilentConfig.DisableWindowsInk.HasValue)
  596. {
  597. Options.CurrentOptions.DisableWindowsInk = CurrentSilentConfig.DisableWindowsInk.Value;
  598. }
  599. if (CurrentSilentConfig.DisableSpellingTyping.HasValue)
  600. {
  601. Options.CurrentOptions.DisableSpellingTyping = CurrentSilentConfig.DisableSpellingTyping.Value;
  602. }
  603. if (CurrentSilentConfig.DisableXboxLive.HasValue)
  604. {
  605. Options.CurrentOptions.DisableXboxLive = CurrentSilentConfig.DisableXboxLive.Value;
  606. }
  607. if (CurrentSilentConfig.DisableGameBar.HasValue)
  608. {
  609. Options.CurrentOptions.DisableGameBar = CurrentSilentConfig.DisableGameBar.Value;
  610. }
  611. if (CurrentSilentConfig.DisableInsiderService.HasValue)
  612. {
  613. Options.CurrentOptions.DisableInsiderService = CurrentSilentConfig.DisableInsiderService.Value;
  614. }
  615. if (CurrentSilentConfig.DisableFeatureUpdates.HasValue)
  616. {
  617. Options.CurrentOptions.DisableFeatureUpdates = CurrentSilentConfig.DisableFeatureUpdates.Value;
  618. }
  619. if (CurrentSilentConfig.DisableCloudClipboard.HasValue)
  620. {
  621. Options.CurrentOptions.DisableCloudClipboard = CurrentSilentConfig.DisableCloudClipboard.Value;
  622. }
  623. if (CurrentSilentConfig.RemoveCastToDevice.HasValue)
  624. {
  625. Options.CurrentOptions.RemoveCastToDevice = CurrentSilentConfig.RemoveCastToDevice.Value;
  626. }
  627. if (CurrentSilentConfig.DisableActionCenter.HasValue)
  628. {
  629. Options.CurrentOptions.DisableActionCenter = CurrentSilentConfig.DisableActionCenter.Value;
  630. }
  631. }
  632. }
  633. }