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(); } }