/// <summary> /// Gets the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>System.Object.</returns> public async Task <object> Get(GetPlugins request) { var result = _appHost.Plugins.OrderBy(p => p.Name).Select(p => p.GetPluginInfo()).ToList(); // Don't fail just on account of image url's try { var packages = (await _installationManager.GetAvailablePackagesWithoutRegistrationInfo(CancellationToken.None)) .ToList(); foreach (var plugin in result) { var pkg = packages.FirstOrDefault(i => !string.IsNullOrWhiteSpace(i.guid) && new Guid(plugin.Id).Equals(new Guid(i.guid))); if (pkg != null) { plugin.ImageUrl = pkg.thumbImage; } } } catch { } return(ToOptimizedSerializedResultUsingCache(result)); }
private async void ReloadList() { try { var packages = await _installationManager.GetAvailablePackagesWithoutRegistrationInfo(CancellationToken.None); packages = packages.Where(i => i.versions != null && i.versions.Count > 0); _listItems.Clear(); var categories = packages .Where(i => i.type == PackageType.UserInstalled && i.targetSystem == PackageTargetSystem.MBTheater) .OrderBy(i => string.IsNullOrEmpty(i.category) ? "General" : i.category) .GroupBy(i => string.IsNullOrEmpty(i.category) ? "General" : i.category) .ToList(); _listItems.AddRange(categories.Select(i => new PluginCategoryViewModel(_presentationManager, _installationManager, _nav, _appHost) { Name = i.Key, Packages = i.Select(p => new PackageInfoViewModel(_installationManager, _nav) { PackageInfo = p }).ToList() })); } catch (Exception) { _presentationManager.ShowDefaultErrorMessage(); } }
/// <summary> /// Gets the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>System.Object.</returns> public async Task <object> Get(GetPlugins request) { var result = _appHost.Plugins.OrderBy(p => p.Name).Select(p => p.GetPluginInfo()).ToList(); var requireAppStoreEnabled = request.IsAppStoreEnabled.HasValue && request.IsAppStoreEnabled.Value; // Don't fail just on account of image url's try { var packages = (await _installationManager.GetAvailablePackagesWithoutRegistrationInfo(CancellationToken.None)) .ToList(); foreach (var plugin in result) { var pkg = packages.FirstOrDefault(i => !string.IsNullOrWhiteSpace(i.guid) && string.Equals(i.guid.Replace("-", string.Empty), plugin.Id.Replace("-", string.Empty), StringComparison.OrdinalIgnoreCase)); if (pkg != null) { plugin.ImageUrl = pkg.thumbImage; } } if (requireAppStoreEnabled) { result = result .Where(plugin => { var pkg = packages.FirstOrDefault(i => !string.IsNullOrWhiteSpace(i.guid) && new Guid(plugin.Id).Equals(new Guid(i.guid))); return(pkg != null && pkg.enableInAppStore); }) .ToList(); } } catch { //Logger.ErrorException("Error getting plugin list", ex); // Play it safe here if (requireAppStoreEnabled) { result = new List <PluginInfo>(); } } return(ToOptimizedSerializedResultUsingCache(result)); }
public static async Task <CheckForUpdateResult> CheckForApplicationUpdate(Version currentVersion, PackageVersionClass updateLevel, IInstallationManager installationManager, CancellationToken cancellationToken, IProgress <double> progress) { var availablePackages = await installationManager.GetAvailablePackagesWithoutRegistrationInfo(cancellationToken).ConfigureAwait(false); var version = installationManager.GetLatestCompatibleVersion(availablePackages, "MBServer", null, currentVersion, updateLevel); var versionObject = version == null || string.IsNullOrWhiteSpace(version.versionStr) ? null : new Version(version.versionStr); var isUpdateAvailable = versionObject != null && versionObject > currentVersion; return(versionObject != null ? new CheckForUpdateResult { AvailableVersion = versionObject.ToString(), IsUpdateAvailable = isUpdateAvailable, Package = version } : new CheckForUpdateResult { AvailableVersion = currentVersion.ToString(), IsUpdateAvailable = false }); }
public static async Task<CheckForUpdateResult> CheckForApplicationUpdate(Version currentVersion, PackageVersionClass updateLevel, IInstallationManager installationManager, CancellationToken cancellationToken, IProgress<double> progress) { var availablePackages = await installationManager.GetAvailablePackagesWithoutRegistrationInfo(cancellationToken).ConfigureAwait(false); var version = installationManager.GetLatestCompatibleVersion(availablePackages, "MBServer", null, currentVersion, updateLevel); var versionObject = version == null || string.IsNullOrWhiteSpace(version.versionStr) ? null : new Version(version.versionStr); var isUpdateAvailable = versionObject != null && versionObject > currentVersion; return versionObject != null ? new CheckForUpdateResult { AvailableVersion = versionObject.ToString(), IsUpdateAvailable = isUpdateAvailable, Package = version } : new CheckForUpdateResult { AvailableVersion = currentVersion.ToString(), IsUpdateAvailable = false }; }