async Task ProcessFiles(CheckForUpdateResult rpResult)
        {
            if (rpResult.Files != null)
            {
                foreach (var rFileUpdate in rpResult.Files)
                {
                    var rFile = new FileInfo(rFileUpdate.Name);

                    switch (rFileUpdate.Action)
                    {
                    case CheckForUpdateFileAction.CreateOrOverwrite:
                        EnsureDirectory(rFile);

                        using (var rWriter = new StreamWriter(rFile.Open(FileMode.Create, FileAccess.Write, FileShare.Read)))
                            await rWriter.WriteAsync(rFileUpdate.Content);

                        rFile.LastWriteTime = DateTimeUtil.FromUnixTime(rFileUpdate.Timestamp).LocalDateTime;
                        break;

                    case CheckForUpdateFileAction.Delete:
                        NativeMethods.Kernel32.DeleteFileW(rFile.FullName);
                        break;

                    case CheckForUpdateFileAction.Rename:
                        EnsureDirectory(rFile);

                        rFile.MoveTo(rFileUpdate.Content);
                        break;
                    }
                }
            }
        }
Beispiel #2
0
        public static Task <CheckForUpdateResult> CheckForApplicationUpdate(Version currentVersion,
                                                                            PackageVersionClass updateLevel,
                                                                            IInstallationManager installationManager,
                                                                            CancellationToken cancellationToken,
                                                                            IProgress <double> progress)
        {
            var result = new CheckForUpdateResult {
                AvailableVersion = currentVersion.ToString(), IsUpdateAvailable = false
            };

            return(Task.FromResult(result));
        }