Exemple #1
0
        /// <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));
        }
Exemple #2
0
        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));
        }
Exemple #4
0
        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
            });
        }
Exemple #5
0
        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 };
        }