mirror of
https://github.com/terrymacdonald/DisplayMagician.git
synced 2024-08-30 18:32:20 +00:00
Finished messages and fixed upgrade logic
Have managed to fix the logic for the messages functionality and the upgrade logic for the MSI installer so that it can install same versions.
This commit is contained in:
parent
e64e836525
commit
efc5fc43c7
@ -977,6 +977,11 @@ namespace DisplayMagician {
|
||||
try
|
||||
{
|
||||
json = client.DownloadString(indexUrl);
|
||||
if (String.IsNullOrWhiteSpace(json))
|
||||
{
|
||||
logger.Trace($"Program/ShowMessages: There were no messages in the {indexUrl} message index.");
|
||||
return;
|
||||
}
|
||||
messageIndex = JsonConvert.DeserializeObject<List<MessageItem>>(json);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -985,9 +990,20 @@ namespace DisplayMagician {
|
||||
return;
|
||||
}
|
||||
|
||||
ProgramSettings programSettings = ProgramSettings.LoadSettings();
|
||||
|
||||
foreach (MessageItem message in messageIndex)
|
||||
{
|
||||
// Skip if we've already shown it
|
||||
if (message.Id <= programSettings.LastMessageIdRead)
|
||||
{
|
||||
// Unless it's one coming up that we're monitoring
|
||||
if (!programSettings.MessagesToMonitor.Contains(message.Id))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// Firstly, check that the version is correct
|
||||
Version myAppVersion = Assembly.GetEntryAssembly().GetName().Version;
|
||||
if (!string.IsNullOrWhiteSpace(message.MinVersion))
|
||||
@ -1017,6 +1033,7 @@ namespace DisplayMagician {
|
||||
if (!(myAppVersion <= maxVersion))
|
||||
{
|
||||
logger.Debug($"Program/ShowMessages: Message is for version <= {maxVersion} and this is version {myAppVersion} so not showing message.");
|
||||
// Save it if it's one coming up that we're monitoring and we haven't already saved it
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@ -1035,6 +1052,11 @@ namespace DisplayMagician {
|
||||
if (!(DateTime.Now >= startTime))
|
||||
{
|
||||
logger.Debug($"Program/ShowMessages: Message start date for \"{message.HeadingText}\" (#{message.Id}) not yet reached so not ready to show message.");
|
||||
if (!programSettings.MessagesToMonitor.Contains(message.Id))
|
||||
{
|
||||
programSettings.MessagesToMonitor.Add(message.Id);
|
||||
programSettings.SaveSettings();
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@ -1061,6 +1083,19 @@ namespace DisplayMagician {
|
||||
myMessageWindow.HeadingText = message.HeadingText;
|
||||
myMessageWindow.ButtonText = message.ButtonText;
|
||||
myMessageWindow.ShowDialog();
|
||||
// If this the list of messages is still trying to monitor this message, then remove it if we've shown it to the user.
|
||||
if (programSettings.MessagesToMonitor.Contains(message.Id))
|
||||
{
|
||||
programSettings.MessagesToMonitor.Remove(message.Id);
|
||||
programSettings.SaveSettings();
|
||||
}
|
||||
|
||||
// Update the latest message id to keep track of where we're up to
|
||||
if (message.Id > programSettings.LastMessageIdRead)
|
||||
{
|
||||
programSettings.LastMessageIdRead = message.Id;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
@ -22,6 +23,8 @@ namespace DisplayMagician
|
||||
private bool _startOnBootUp = false;
|
||||
private bool _minimiseOnStart = false;
|
||||
private bool _upgradeToPrereleases = false;
|
||||
private int _lastMessageIdRead = 0;
|
||||
private List<int> _messagesToMonitor = new List<int>();
|
||||
private string _logLevel = NLog.LogLevel.Info.ToString();
|
||||
private Keys _hotkeyMainWindow = Keys.None;
|
||||
private Keys _hotkeyDisplayProfileWindow = Keys.None;
|
||||
@ -79,6 +82,40 @@ namespace DisplayMagician
|
||||
}
|
||||
}
|
||||
|
||||
public int LastMessageIdRead
|
||||
{
|
||||
get
|
||||
{
|
||||
return _lastMessageIdRead;
|
||||
}
|
||||
set
|
||||
{
|
||||
_lastMessageIdRead = value;
|
||||
|
||||
// Because a value has changed, we need to save the setting
|
||||
// to remember it for later.
|
||||
if (_programSettingsLoaded)
|
||||
SaveSettings();
|
||||
}
|
||||
}
|
||||
|
||||
public List<int> MessagesToMonitor
|
||||
{
|
||||
get
|
||||
{
|
||||
return _messagesToMonitor;
|
||||
}
|
||||
set
|
||||
{
|
||||
_messagesToMonitor = value;
|
||||
|
||||
// Because a value has changed, we need to save the setting
|
||||
// to remember it for later.
|
||||
if (_programSettingsLoaded)
|
||||
SaveSettings();
|
||||
}
|
||||
}
|
||||
|
||||
public string LogLevel
|
||||
{
|
||||
get
|
||||
|
@ -26,8 +26,8 @@ using System.Resources;
|
||||
[assembly: Guid("e4ceaf5e-ad01-4695-b179-31168eb74c48")]
|
||||
|
||||
// Version information
|
||||
[assembly: AssemblyVersion("2.0.0.15")]
|
||||
[assembly: AssemblyFileVersion("2.0.0.15")]
|
||||
[assembly: AssemblyVersion("2.0.0.20")]
|
||||
[assembly: AssemblyFileVersion("2.0.0.20")]
|
||||
[assembly: NeutralResourcesLanguageAttribute( "en" )]
|
||||
[assembly: CLSCompliant(true)]
|
||||
|
||||
|
@ -29,6 +29,7 @@ namespace DisplayMagician.UIForms
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(StartMessageForm));
|
||||
this.lbl_heading_text = new System.Windows.Forms.Label();
|
||||
this.rtb_message = new System.Windows.Forms.RichTextBox();
|
||||
this.btn_back = new System.Windows.Forms.Button();
|
||||
@ -57,7 +58,7 @@ namespace DisplayMagician.UIForms
|
||||
this.rtb_message.Location = new System.Drawing.Point(20, 20);
|
||||
this.rtb_message.Name = "rtb_message";
|
||||
this.rtb_message.ReadOnly = true;
|
||||
this.rtb_message.Size = new System.Drawing.Size(1209, 687);
|
||||
this.rtb_message.Size = new System.Drawing.Size(1205, 683);
|
||||
this.rtb_message.TabIndex = 21;
|
||||
this.rtb_message.Text = "";
|
||||
//
|
||||
@ -80,6 +81,7 @@ namespace DisplayMagician.UIForms
|
||||
// pnl_richtextbox
|
||||
//
|
||||
this.pnl_richtextbox.BackColor = System.Drawing.Color.White;
|
||||
this.pnl_richtextbox.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.pnl_richtextbox.Controls.Add(this.rtb_message);
|
||||
this.pnl_richtextbox.Location = new System.Drawing.Point(13, 63);
|
||||
this.pnl_richtextbox.Name = "pnl_richtextbox";
|
||||
@ -92,6 +94,8 @@ namespace DisplayMagician.UIForms
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.Black;
|
||||
this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));
|
||||
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
||||
this.ClientSize = new System.Drawing.Size(1274, 844);
|
||||
this.Controls.Add(this.pnl_richtextbox);
|
||||
this.Controls.Add(this.btn_back);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -16,8 +16,8 @@
|
||||
<!-- Upgrade settings. This will be explained in more detail in a future post -->
|
||||
<Upgrade Id="$(var.UpgradeCode)">
|
||||
<UpgradeVersion OnlyDetect="yes" Minimum="!(bind.fileVersion.DisplayMagicianExe)" IncludeMinimum="no" Property="NEWERFOUND" />
|
||||
<UpgradeVersion OnlyDetect="yes" Minimum="!(bind.fileVersion.DisplayMagicianExe)" Maximum="!(bind.fileVersion.DisplayMagicianExe)" IncludeMinimum="yes" IncludeMaximum="yes" Property="SELFFOUND" />
|
||||
<UpgradeVersion Minimum="0.0.0.0" IncludeMinimum="no" Maximum="!(bind.fileVersion.DisplayMagicianExe)" IncludeMaximum="no" Property="OLDER_VERSION_FOUND" IgnoreRemoveFailure="yes" />
|
||||
<!--<UpgradeVersion OnlyDetect="yes" Minimum="!(bind.fileVersion.DisplayMagicianExe)" Maximum="!(bind.fileVersion.DisplayMagicianExe)" IncludeMinimum="yes" IncludeMaximum="yes" Property="SELFFOUND" />-->
|
||||
<UpgradeVersion Minimum="0.0.0.0" IncludeMinimum="no" Maximum="!(bind.fileVersion.DisplayMagicianExe)" IncludeMaximum="yes" Property="OLDER_VERSION_FOUND" IgnoreRemoveFailure="yes" />
|
||||
</Upgrade>
|
||||
|
||||
<CustomAction Id='AlreadyUpdated' Error='!(loc.ProductName) has already been updated to !(bind.fileVersion.DisplayMagicianExe) or newer. If you want to reinstall this version then uninstall !(loc.ProductName) first.' />
|
||||
|
Loading…
Reference in New Issue
Block a user