Files
ayanova7/keys/Generator/MsgEditor.cs
2018-06-29 19:47:36 +00:00

240 lines
6.4 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace GroundZero.KeyCodes
{
public partial class MsgEditor : Form
{
public MsgEditor()
{
InitializeComponent();
}
private MessageType currentMessageType = MessageType.None;
private string currentMessage = "";
#region open message types menu clicks
private void mnuLiteTrialGreeting_Click(object sender, EventArgs e)
{
OpenMessage(MessageType.TrialGreetingLite);
}
private void mnuFullTrialGreeting_Click(object sender, EventArgs e)
{
OpenMessage(MessageType.TrialGreetingFull);
}
private void mnuKeyNewFull_Click(object sender, EventArgs e)
{
OpenMessage(MessageType.KeyNewFull);
}
private void mnuKeyNewLite_Click(object sender, EventArgs e)
{
OpenMessage(MessageType.KeyNewLite);
}
private void mnuKeyAddOnFull_Click(object sender, EventArgs e)
{
OpenMessage(MessageType.KeyAddOnFull);
}
private void mnuKeyAddOnLite_Click(object sender, EventArgs e)
{
OpenMessage(MessageType.KeyAddOnLite);
}
private void mnuKeyTrialFull_Click(object sender, EventArgs e)
{
OpenMessage(MessageType.KeyTrialFull);
}
private void mnuKeyTrialLite_Click(object sender, EventArgs e)
{
OpenMessage(MessageType.KeyTrialLite);
}
#endregion open message types menu clicks
#region nuts and bolts
private bool IsDirty
{
get
{
if (currentMessageType == MessageType.None) return false;
return currentMessage != edMsg.Text;
}
}
private void OpenMessage(MessageType mtype)
{
if (IsDirty)
{
if (!PromptToSave())
return;
}
Read(mtype);
edMsg.Enabled = true;
}
private bool PromptToSave()
{
DialogResult dr = MessageBox.Show("Save changes?", "Changes have been made", MessageBoxButtons.YesNoCancel);
if(dr== System.Windows.Forms.DialogResult.Cancel)
return false;
if (dr == System.Windows.Forms.DialogResult.No) return true;
Save();
return true;
}
private void Save()
{
File.WriteAllText(FileName(currentMessageType), edMsg.Text);
currentMessage = edMsg.Text;
ShowDirty();
}
private void Read(MessageType mtype)
{
currentMessageType = mtype;
this.Text = "Key generator message editor - " + FileName(mtype);
if (!File.Exists(FileName(mtype)))
{
MessageBox.Show("File " + FileName(mtype) + " not found, a new one will be created on save");
edMsg.Text = "";
currentMessage = "";
return;
}
currentMessage=edMsg.Text = File.ReadAllText(FileName(mtype));
ShowDirty();
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
Save();
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void MsgEditor_FormClosing(object sender, FormClosingEventArgs e)
{
if (IsDirty)
{
if (!PromptToSave())
{
e.Cancel = true;
return;
}
}
}
private void edMsg_TextChanged(object sender, EventArgs e)
{
ShowDirty();
}
private void ShowDirty()
{
this.Text = this.Text.Replace("*", "");
if (IsDirty)
{
this.Text = "*" + this.Text;
}
}
#endregion nuts and bolts
#region Tokens
private void mnuInsertFirstNameToken_Click(object sender, EventArgs e)
{
edMsg.SelectedText = "[FirstName]";
}
private void mnuInsertTokenLicenseExpiryDate_Click(object sender, EventArgs e)
{
edMsg.SelectedText = "[LicenseExpiryDate]";
}
private void mnuInsertTokenLicenseDescription_Click(object sender, EventArgs e)
{
edMsg.SelectedText = "[LicenseDescription]";
}
private void mnuInsertTokenLicenseKey_Click(object sender, EventArgs e)
{
edMsg.SelectedText = "[LicenseKey]";
}
#endregion tokens
#region MessageType enum
enum MessageType
{
None,
TrialGreetingLite,
TrialGreetingFull,
KeyNewFull,
KeyNewLite,
KeyAddOnFull,
KeyAddOnLite,
KeyTrialFull,
KeyTrialLite
}
private string FileName(MessageType mtype)
{
switch (mtype)
{
case MessageType.TrialGreetingFull:
return "TrialGreetingFull.txt";
case MessageType.TrialGreetingLite:
return "TrialGreetingLite.txt";
case MessageType.KeyNewFull:
return "KeyNewFull.txt";
case MessageType.KeyNewLite:
return "KeyNewLite.txt";
case MessageType.KeyAddOnFull:
return "KeyAddOnFull.txt";
case MessageType.KeyAddOnLite:
return "KeyAddOnLite.txt";
case MessageType.KeyTrialFull:
return "KeyTrialFull.txt";
case MessageType.KeyTrialLite:
return "KeyTrialLite.txt";
}
return "";
}
#endregion MessageTypeEnum
}//end of class
}