예제 #1
0
 private void checkForUpdateLabel_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
 {
     try
     {
         var result = CheckUpdate.Run(SB.updateUrl);
         if (result.Update)
         {
             var notesWindow = new NotesWindow()
             {
                 DontShowMainWindow = true,
                 SBUrl = result.Url,
             };
             notesWindow.titleLabel.Content += " " + result.Version;
             for (var i = 0; i < result.Notes.Count; i++)
             {
                 notesWindow.richTextBox.AppendText(result.Notes[i].Note + "\n");
             }
             notesWindow.Show();
         }
         else
         {
             MessageBox.Show("there are currently no updates available", "SilverBullet", MessageBoxButton.OK, MessageBoxImage.Information);
         }
     }
     catch { }
 }
        public void CheckForUpdate()
        {
            try
            {
                Dispatcher.Invoke(() => richTextBox.Document.Blocks.Clear());
                Dispatcher.Invoke(() => richTextBoxDonate.Document.Blocks.Clear());
                var result         = CheckUpdate.Run <SBUpdate>();
                var releasesLatest = CheckUpdate.Run <Release>("https://api.github.com/repos/mohamm4dx/SilverBullet/releases/latest");
                if (releasesLatest.Assets != null && releasesLatest.Assets.Length > 0)
                {
                    result.DownloadUrl = releasesLatest.Assets.First().Browser_Download_Url;
                }
                result.Available = releasesLatest.Available;
                releasesLatest.Body.Split('\n')
                .ToList().ForEach(re =>
                {
                    re = re.Replace("•", string.Empty)
                         .Replace("•", string.Empty).Trim();
                    if (result.ReleaseNotes.Any(r => r.Note.Trim()
                                                .Replace("•", string.Empty)
                                                .Replace("•", string.Empty) != re))
                    {
                        result.ReleaseNotes.Add(new ReleaseNotes()
                        {
                            Note = re
                        });
                    }
                });

                Dispatcher.Invoke(() => DataContext = result);
                try
                {
                    for (var i = 0; i < result.Donate.Length; i++)
                    {
                        Dispatcher.Invoke(() => AppendParagraph(richTextBoxDonate, new[] { result.Donate[i].Address }));
                    }
                }
                catch { }
                if (result.Available)
                {
                    try
                    {
                        for (var i = 0; i < result.ReleaseNotes.Count; i++)
                        {
                            Dispatcher.Invoke(() => AppendParagraph(richTextBox, new[] { result.ReleaseNotes[i].Note }));
                        }
                    }
                    catch { }
                    if (!string.IsNullOrWhiteSpace(result.Message))
                    {
                        Dispatcher.Invoke(() => CustomMsgBox.Show(result.Message));
                    }
                }
                else
                {
                    Dispatcher.Invoke(() => CustomMsgBox.Show("there are currently no updates available"));
                }
            }
            catch { }
        }
예제 #3
0
        public void AllFilesAreTheSameLastWriteTime()
        {
            // Arrange
            var target = new CheckUpdate();

            // Act
            var result = target.Run(SourceDirPath, InstallDirPath, new List <string>());

            // Assert
            Assert.AreEqual(ResultCode.Success, result.ResultCode);
            Assert.IsFalse(result.Updated);
        }
예제 #4
0
        public void AllFilesAreDifferentLastWriteTime()
        {
            // Arrange
            SourceDirPath.ToDirectoryPath().SetLastWriteTimeToAllFiles(UpdateDateTime2);
            var target = new CheckUpdate();

            // Act
            var result = target.Run(SourceDirPath, InstallDirPath, new List <string>());

            // Assert
            Assert.AreEqual(ResultCode.Success, result.ResultCode);
            Assert.IsTrue(result.Updated);
        }
예제 #5
0
        public void OneOfTheFileIsUpdated()
        {
            // Arrange
            var updatedFilePath = Path.Combine(SourceDirPath, "a.txt");

            File.SetLastWriteTime(updatedFilePath, UpdateDateTime2);

            var target = new CheckUpdate();

            // Act
            var result = target.Run(SourceDirPath, InstallDirPath, new List <string>());

            // Assert
            Assert.AreEqual(ResultCode.Success, result.ResultCode);
            Assert.IsTrue(result.Updated);
        }
예제 #6
0
        public void UserFilesAreUpdate()
        {
            // Arrange
            var userDataFilePath = Path.Combine(InstallDirPath, UserDataDirFolderName, "u_a.txt");

            File.SetLastWriteTime(userDataFilePath, UpdateDateTime2);

            var target = new CheckUpdate();

            // Act
            var result = target.Run(
                SourceDirPath,
                InstallDirPath,
                new List <string> {
                UserDataDirFolderName + @"\\" + @".*"
            });

            // Assert
            Assert.AreEqual(ResultCode.Success, result.ResultCode);
            Assert.IsFalse(result.Updated);
        }