private void GetComponentStatus([NotNull] ServerComponentInfo serverComponent) { Debug.ArgumentNotNull(serverComponent, nameof(serverComponent)); var plugin = GetInstalledPlugin(serverComponent.Name); if (plugin == null) { return; } System.Version pluginVersion; System.Version componentVersion; try { pluginVersion = new System.Version(plugin.Version); } catch { pluginVersion = new System.Version(0, 0, 0, 0); } try { componentVersion = new System.Version(serverComponent.Version); } catch { componentVersion = new System.Version(0, 0, 0, 0); } var update = new UpdateInfo { Name = serverComponent.Name, Plugin = plugin, ServerComponent = serverComponent, LocalVersion = plugin.Version, RuntimeVersion = plugin.RuntimeVersion.ToString(), ServerVersion = serverComponent.Version }; if (pluginVersion == componentVersion) { update.Action = Rocks.Resources.UpdateServerComponentsDialog_GetComponentStatus_None; } else if (pluginVersion > componentVersion) { update.Action = Rocks.Resources.UpdateServerComponentsDialog_GetComponentStatus_Copy_to_Server; update.IsChecked = true; } else if (pluginVersion < componentVersion) { update.Action = Rocks.Resources.UpdateServerComponentsDialog_GetComponentStatus_None___Newer_Version_on_Server; } Updates.Add(update); }
private void LoadComponents([NotNull] string response, [NotNull] ExecuteResult executeResult, bool firstTime, [CanBeNull] Action completed) { Debug.ArgumentNotNull(response, nameof(response)); Debug.ArgumentNotNull(executeResult, nameof(executeResult)); DataService.DisableLoginErrorMessage = false; if (executeResult.Error != null && executeResult.Error.Message == @"No Service") { RenderComponents(); if (!firstTime) { AppHost.MessageBox("Got a \"No Service\" error.\n\nPlease check that the connection is correct.", "Information", MessageBoxButton.OK, MessageBoxImage.Information); } if (completed != null) { completed(); } return; } if (!DataService.HandleExecute(response, executeResult, false)) { RenderComponents(); if (completed != null) { completed(); } return; } if (string.IsNullOrEmpty(response)) { RenderComponents(); if (completed != null) { completed(); } return; } var doc = XDocument.Parse(response); var root = doc.Root; if (root == null) { return; } foreach (var element in root.Elements(@"component")) { var info = new ServerComponentInfo { Name = element.GetAttributeValue("name"), Version = element.GetAttributeValue("version") }; ServerComponents.Add(info); } RenderComponents(); if (completed != null) { completed(); } }