Пример #1
0
        /// <summary>
        /// Posts the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <exception cref="ResourceNotFoundException"></exception>
        public async Task Post(InstallPackage request)
        {
            var package = string.IsNullOrEmpty(request.Version) ?
                          await _installationManager.GetLatestCompatibleVersion(request.Name, request.AssemblyGuid, typeof(PackageService).Assembly.GetName().Version, request.UpdateClass).ConfigureAwait(false) :
                          await _installationManager.GetPackage(request.Name, request.AssemblyGuid, request.UpdateClass, Version.Parse(request.Version)).ConfigureAwait(false);

            if (package == null)
            {
                throw new ResourceNotFoundException(string.Format("Package not found: {0}", request.Name));
            }

            await _installationManager.InstallPackage(package, new SimpleProgress <double>(), CancellationToken.None);
        }
Пример #2
0
        /// <summary>
        /// Posts the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <exception cref="ResourceNotFoundException"></exception>
        public void Post(InstallPackage request)
        {
            var package = string.IsNullOrEmpty(request.Version) ?
                          _installationManager.GetLatestCompatibleVersion(request.Name, request.AssemblyGuid, _appHost.ApplicationVersion, request.UpdateClass).Result :
                          _installationManager.GetPackage(request.Name, request.AssemblyGuid, request.UpdateClass, Version.Parse(request.Version)).Result;

            if (package == null)
            {
                throw new ResourceNotFoundException(string.Format("Package not found: {0}", request.Name));
            }

            Task.Run(() => _installationManager.InstallPackage(package, new Progress <double>(), CancellationToken.None));
        }
Пример #3
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
            });
        }
Пример #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 };
        }