Пример #1
0
        private void ParticipationMessage(object state)
        {
            _participationTimer.Dispose();
            var args = new NotifyUserMessageEventArgs(PARTICIPATIONMESSAGEKEY, MessageIcon.Info, MessageCommand.OpenDialog, typeof(UserStatisticsParticipationDialog));

            _eventAggregator.GetEvent <NotifyUserMessageEvent>().Publish(args);
        }
Пример #2
0
        private void CheckForNewerVersion()
        {
            var feedReader = new NauXmlFeedReaderEx();
            var updManager = UpdateManager.Instance;

            updManager.UpdateSource     = new SimpleWebSource(ConfigurationManager.AppSettings["UpdateSourceUrl"]);
            updManager.UpdateFeedReader = feedReader;
            updManager.ReinstateIfRestarted();
            updManager.Config.UpdateProcessName    = "GODspeed";
            updManager.Config.UpdateExecutableName = "godspeed.exe";
            if (updManager.State == UpdateManager.UpdateProcessState.NotChecked)
            {
                _workHandler.Run(() =>
                {
                    updManager.CheckForUpdates();
                    return(string.Compare(feedReader.LatestVersionOnServer, App.ApplicationVersion, StringComparison.InvariantCultureIgnoreCase) == 1 && updManager.UpdatesAvailable > 0);
                }, hasUpdate =>
                {
                    if (!hasUpdate)
                    {
                        return;
                    }
                    var args = new NotifyUserMessageEventArgs(NEWVERSIONAVAILABLEMESSAGEKEY, MessageIcon.Info, MessageCommand.OpenDialog, typeof(AutoUpdateDialog), MessageFlags.Ignorable, feedReader.LatestVersionOnServer);
                    _eventAggregator.GetEvent <NotifyUserMessageEvent>().Publish(args);
                });
            }
        }
Пример #3
0
        private void NotifyUserMessage(NotifyUserMessageEventArgs e)
        {
            if (_userSettings.IsMessageIgnored(e.MessageKey))
            {
                return;
            }
            var message = string.Format(Resx.ResourceManager.GetString(e.MessageKey), e.MessageArgs);
            var i       = UserMessages.IndexOf(m => m.Message == message);

            if (i == -1)
            {
                if (UserMessages.First() is NoMessagesViewModel)
                {
                    UserMessages.RemoveAt(0);
                }
                UserMessages.Insert(0, new UserMessageViewModel(message, e));
                if (_userSettings.DisableNotificationSound)
                {
                    return;
                }
                var notificationSound = new SoundPlayer(new MemoryStream(ResourceManager.GetContentByteArray("/Resources/Sounds/notification.wav")));
                notificationSound.Play();
            }
            else if (i != 0)
            {
                UserMessages.Move(i, 0);
            }
        }
Пример #4
0
 public UserMessageViewModel(string message, NotifyUserMessageEventArgs e)
 {
     Message = message;
     var png = ResourceManager.GetContentByteArray(string.Format("/Resources/{0}.png", e.Icon));
     Icon = StfsPackageExtensions.GetBitmapFromByteArray(png);
     CommandParameter = new UserMessageCommandParameter(this, e.Command, e.CommandParameter);
     Flags = e.Flags;
 }
Пример #5
0
        public UserMessageViewModel(string message, NotifyUserMessageEventArgs e)
        {
            Message = message;
            var png = ResourceManager.GetContentByteArray(string.Format("/Resources/{0}.png", e.Icon));

            Icon             = StfsPackageExtensions.GetBitmapFromByteArray(png);
            CommandParameter = new UserMessageCommandParameter(this, e.Command, e.CommandParameter);
            Flags            = e.Flags;
        }
Пример #6
0
 private void CheckForNewerVersion()
 {
     var asm = Assembly.GetExecutingAssembly();
     var title = asm.GetAttribute<AssemblyTitleAttribute>().Title;
     const string url = "https://godspeed.codeplex.com/";
     _workHandler.Run(() =>
     {
         try
         {
             var request = WebRequest.Create(url);
             var response = request.GetResponse();
             var titlePattern = new Regex(@"\<span class=""rating_header""\>current.*?\<td\>(.*?)\</td\>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
             var datePattern = new Regex(@"\<span class=""rating_header""\>date.*?\<td\>.*?LocalTimeTicks=""(.*?)""", RegexOptions.IgnoreCase | RegexOptions.Singleline);
             string html;
             using (var stream = response.GetResponseStream())
             {
                 var sr = new StreamReader(stream, Encoding.UTF8);
                 html = sr.ReadToEnd();
                 sr.Close();
             }
             var latestTitle = titlePattern.Match(html).Groups[1].Value.Trim();
             var latestDate = new DateTime(1970, 1, 1);
             latestDate = latestDate.AddSeconds(long.Parse(datePattern.Match(html).Groups[1].Value)).ToLocalTime();
             return new Tuple<string, DateTime>(latestTitle, latestDate);
         }
         catch
         {
             return new Tuple<string, DateTime>(string.Empty, DateTime.MinValue);
         }
     },
     info =>
     {
         if (string.Compare(title, info.Item1, StringComparison.InvariantCultureIgnoreCase) != -1) return;
         var args = new NotifyUserMessageEventArgs(NEWVERSIONAVAILABLEMESSAGEKEY, MessageIcon.Info, MessageCommand.OpenUrl, url, MessageFlags.None, info.Item1, info.Item2);
         _eventAggregator.GetEvent<NotifyUserMessageEvent>().Publish(args);
     });
 }
Пример #7
0
 public void QueueMessage(NotifyUserMessageEventArgs message)
 {
     _messageQueue.Enqueue(message);
 }
Пример #8
0
 private void CodeplexMessage(object state)
 {
     _codeplexTimer.Dispose();
     var args = new NotifyUserMessageEventArgs(CODEPLEXMESSAGEKEY, MessageIcon.Info, MessageCommand.OpenUrl, "http://godspeed.codeplex.com", MessageFlags.Ignorable | MessageFlags.IgnoreAfterOpen);
     _eventAggregator.GetEvent<NotifyUserMessageEvent>().Publish(args);
 }
Пример #9
0
 private void FacebookMessage(object state)
 {
     _facebookTimer.Dispose();
     var args = new NotifyUserMessageEventArgs(FACEBOOKMESSAGEKEY, MessageIcon.Info, MessageCommand.OpenUrl, "http://www.facebook.com/godspeedftp", MessageFlags.Ignorable | MessageFlags.IgnoreAfterOpen);
     _eventAggregator.GetEvent<NotifyUserMessageEvent>().Publish(args);
 }
Пример #10
0
 private void ParticipationMessage(object state)
 {
     _participationTimer.Dispose();
     var args = new NotifyUserMessageEventArgs(PARTICIPATIONMESSAGEKEY, MessageIcon.Info, MessageCommand.OpenDialog, typeof(UserStatisticsParticipationDialog));
     _eventAggregator.GetEvent<NotifyUserMessageEvent>().Publish(args);
 }
Пример #11
0
 private void NotifyUserMessage(NotifyUserMessageEventArgs e)
 {
     if (_userSettings.IsMessageIgnored(e.MessageKey)) return;
     var message = string.Format(Resx.ResourceManager.GetString(e.MessageKey), e.MessageArgs);
     var i = UserMessages.IndexOf(m => m.Message == message);
     if (i == -1)
     {
         if (UserMessages.First() is NoMessagesViewModel) UserMessages.RemoveAt(0);
         UserMessages.Insert(0, new UserMessageViewModel(message, e));
         if (_userSettings.DisableNotificationSound) return;
         var notificationSound = new SoundPlayer(new MemoryStream(ResourceManager.GetContentByteArray("/Resources/Sounds/notification.wav")));
         notificationSound.Play();
     }
     else if (i != 0)
     {
         UserMessages.Move(i, 0);
     }
 }
Пример #12
0
 private void OnNotifyUserMessage(NotifyUserMessageEventArgs e)
 {
     UIThread.Run(() => NotifyUserMessage(e));
 }
Пример #13
0
        //private void FacebookMessage(object state)
        //{
        //    _facebookTimer.Dispose();
        //    var args = new NotifyUserMessageEventArgs(FACEBOOKMESSAGEKEY, MessageIcon.Info, MessageCommand.OpenUrl, "http://www.facebook.com/godspeedftp", MessageFlags.Ignorable | MessageFlags.IgnoreAfterOpen);
        //    _eventAggregator.GetEvent<NotifyUserMessageEvent>().Publish(args);
        //}

        //private void CodeplexMessage(object state)
        //{
        //    _codeplexTimer.Dispose();
        //    var args = new NotifyUserMessageEventArgs(CODEPLEXMESSAGEKEY, MessageIcon.Info, MessageCommand.OpenUrl, "http://godspeed.codeplex.com", MessageFlags.Ignorable | MessageFlags.IgnoreAfterOpen);
        //    _eventAggregator.GetEvent<NotifyUserMessageEvent>().Publish(args);
        //}

        public void QueueMessage(NotifyUserMessageEventArgs message)
        {
            _messageQueue.Enqueue(message);
        }
Пример #14
0
 private void OnNotifyUserMessage(NotifyUserMessageEventArgs e)
 {
     UIThread.Run(() => NotifyUserMessage(e));
 }