350 lines
19 KiB
C#
350 lines
19 KiB
C#
using System;
|
|
using System.Drawing;
|
|
using System.Collections;
|
|
using System.ComponentModel;
|
|
using System.Windows.Forms;
|
|
using GZTW.AyaNova.BLL;
|
|
using log4net;
|
|
|
|
namespace AyaNova
|
|
{
|
|
/// <summary>
|
|
/// Summary description for GlobalxForm.
|
|
/// </summary>
|
|
public class GlobalxForm : System.Windows.Forms.Form
|
|
{
|
|
// Create a logger for use in this class
|
|
//case 1039 private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
|
|
|
private Infragistics.Win.UltraWinEditors.UltraTextEditor edNotes;
|
|
private Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea _GlobalxForm_Toolbars_Dock_Area_Left;
|
|
private Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea _GlobalxForm_Toolbars_Dock_Area_Right;
|
|
private Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea _GlobalxForm_Toolbars_Dock_Area_Top;
|
|
private Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea _GlobalxForm_Toolbars_Dock_Area_Bottom;
|
|
private Infragistics.Win.UltraWinToolbars.UltraToolbarsManager tbManager;
|
|
private System.ComponentModel.IContainer components;
|
|
|
|
|
|
private bool LicenseOnlyMode = false;
|
|
public GlobalxForm(bool licenseonlymode = false)
|
|
{
|
|
//case 2094
|
|
LicenseOnlyMode = licenseonlymode;
|
|
//
|
|
// Required for Windows Form Designer support
|
|
//
|
|
InitializeComponent();
|
|
|
|
//
|
|
//
|
|
//
|
|
}
|
|
|
|
/// <summary>
|
|
/// Clean up any resources being used.
|
|
/// </summary>
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
if (disposing)
|
|
{
|
|
if (components != null)
|
|
{
|
|
components.Dispose();
|
|
}
|
|
}
|
|
base.Dispose(disposing);
|
|
}
|
|
|
|
#region Windows Form Designer generated code
|
|
/// <summary>
|
|
/// Required method for Designer support - do not modify
|
|
/// the contents of this method with the code editor.
|
|
/// </summary>
|
|
private void InitializeComponent()
|
|
{
|
|
this.components = new System.ComponentModel.Container();
|
|
Infragistics.Win.UltraWinToolbars.UltraToolbar ultraToolbar1 = new Infragistics.Win.UltraWinToolbars.UltraToolbar("GlobalxMenuBar");
|
|
Infragistics.Win.UltraWinToolbars.ButtonTool buttonTool5 = new Infragistics.Win.UltraWinToolbars.ButtonTool("fetch");
|
|
Infragistics.Win.UltraWinToolbars.ButtonTool buttonTool1 = new Infragistics.Win.UltraWinToolbars.ButtonTool("LT:Admin.Label.PasteLicense");
|
|
Infragistics.Win.UltraWinToolbars.ButtonTool buttonTool2 = new Infragistics.Win.UltraWinToolbars.ButtonTool("LT:Admin.Label.EraseDatabase");
|
|
Infragistics.Win.UltraWinToolbars.ButtonTool buttonTool3 = new Infragistics.Win.UltraWinToolbars.ButtonTool("LT:Admin.Label.PasteLicense");
|
|
Infragistics.Win.UltraWinToolbars.ButtonTool buttonTool4 = new Infragistics.Win.UltraWinToolbars.ButtonTool("LT:Admin.Label.EraseDatabase");
|
|
Infragistics.Win.UltraWinToolbars.ButtonTool buttonTool6 = new Infragistics.Win.UltraWinToolbars.ButtonTool("fetch");
|
|
this.edNotes = new Infragistics.Win.UltraWinEditors.UltraTextEditor();
|
|
this.tbManager = new Infragistics.Win.UltraWinToolbars.UltraToolbarsManager(this.components);
|
|
this._GlobalxForm_Toolbars_Dock_Area_Left = new Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea();
|
|
this._GlobalxForm_Toolbars_Dock_Area_Right = new Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea();
|
|
this._GlobalxForm_Toolbars_Dock_Area_Top = new Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea();
|
|
this._GlobalxForm_Toolbars_Dock_Area_Bottom = new Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea();
|
|
((System.ComponentModel.ISupportInitialize)(this.edNotes)).BeginInit();
|
|
((System.ComponentModel.ISupportInitialize)(this.tbManager)).BeginInit();
|
|
this.SuspendLayout();
|
|
//
|
|
// edNotes
|
|
//
|
|
this.edNotes.AcceptsReturn = true;
|
|
this.edNotes.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
this.edNotes.Location = new System.Drawing.Point(0, 26);
|
|
this.edNotes.Multiline = true;
|
|
this.edNotes.Name = "edNotes";
|
|
this.edNotes.ReadOnly = true;
|
|
this.edNotes.Size = new System.Drawing.Size(628, 417);
|
|
this.edNotes.TabIndex = 128;
|
|
//
|
|
// tbManager
|
|
//
|
|
this.tbManager.DesignerFlags = 1;
|
|
this.tbManager.DockWithinContainer = this;
|
|
this.tbManager.DockWithinContainerBaseType = typeof(System.Windows.Forms.Form);
|
|
this.tbManager.ShowFullMenusDelay = 500;
|
|
ultraToolbar1.DockedColumn = 0;
|
|
ultraToolbar1.DockedRow = 0;
|
|
ultraToolbar1.NonInheritedTools.AddRange(new Infragistics.Win.UltraWinToolbars.ToolBase[] {
|
|
buttonTool5,
|
|
buttonTool1,
|
|
buttonTool2});
|
|
ultraToolbar1.Text = "GlobalxMenuBar";
|
|
this.tbManager.Toolbars.AddRange(new Infragistics.Win.UltraWinToolbars.UltraToolbar[] {
|
|
ultraToolbar1});
|
|
this.tbManager.ToolbarSettings.AllowCustomize = Infragistics.Win.DefaultableBoolean.False;
|
|
this.tbManager.ToolbarSettings.AllowFloating = Infragistics.Win.DefaultableBoolean.False;
|
|
this.tbManager.ToolbarSettings.AllowHiding = Infragistics.Win.DefaultableBoolean.False;
|
|
buttonTool3.SharedPropsInternal.Caption = "LT:Admin.Label.PasteLicense";
|
|
buttonTool3.SharedPropsInternal.DisplayStyle = Infragistics.Win.UltraWinToolbars.ToolDisplayStyle.TextOnlyAlways;
|
|
buttonTool4.SharedPropsInternal.Caption = "LT:Admin.Label.EraseDatabase";
|
|
buttonTool4.SharedPropsInternal.DisplayStyle = Infragistics.Win.UltraWinToolbars.ToolDisplayStyle.TextOnlyAlways;
|
|
buttonTool6.SharedPropsInternal.Caption = "Fetch license";
|
|
buttonTool6.SharedPropsInternal.DisplayStyle = Infragistics.Win.UltraWinToolbars.ToolDisplayStyle.TextOnlyAlways;
|
|
this.tbManager.Tools.AddRange(new Infragistics.Win.UltraWinToolbars.ToolBase[] {
|
|
buttonTool3,
|
|
buttonTool4,
|
|
buttonTool6});
|
|
this.tbManager.ToolClick += new Infragistics.Win.UltraWinToolbars.ToolClickEventHandler(this.tbManager_ToolClick);
|
|
//
|
|
// _GlobalxForm_Toolbars_Dock_Area_Left
|
|
//
|
|
this._GlobalxForm_Toolbars_Dock_Area_Left.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Left.BackColor = System.Drawing.SystemColors.Control;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Left.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Left;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Left.ForeColor = System.Drawing.SystemColors.ControlText;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Left.Location = new System.Drawing.Point(0, 26);
|
|
this._GlobalxForm_Toolbars_Dock_Area_Left.Name = "_GlobalxForm_Toolbars_Dock_Area_Left";
|
|
this._GlobalxForm_Toolbars_Dock_Area_Left.Size = new System.Drawing.Size(0, 417);
|
|
this._GlobalxForm_Toolbars_Dock_Area_Left.ToolbarsManager = this.tbManager;
|
|
//
|
|
// _GlobalxForm_Toolbars_Dock_Area_Right
|
|
//
|
|
this._GlobalxForm_Toolbars_Dock_Area_Right.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Right.BackColor = System.Drawing.SystemColors.Control;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Right.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Right;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Right.ForeColor = System.Drawing.SystemColors.ControlText;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Right.Location = new System.Drawing.Point(628, 26);
|
|
this._GlobalxForm_Toolbars_Dock_Area_Right.Name = "_GlobalxForm_Toolbars_Dock_Area_Right";
|
|
this._GlobalxForm_Toolbars_Dock_Area_Right.Size = new System.Drawing.Size(0, 417);
|
|
this._GlobalxForm_Toolbars_Dock_Area_Right.ToolbarsManager = this.tbManager;
|
|
//
|
|
// _GlobalxForm_Toolbars_Dock_Area_Top
|
|
//
|
|
this._GlobalxForm_Toolbars_Dock_Area_Top.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Top.BackColor = System.Drawing.SystemColors.Control;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Top.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Top;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Top.ForeColor = System.Drawing.SystemColors.ControlText;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Top.Location = new System.Drawing.Point(0, 0);
|
|
this._GlobalxForm_Toolbars_Dock_Area_Top.Name = "_GlobalxForm_Toolbars_Dock_Area_Top";
|
|
this._GlobalxForm_Toolbars_Dock_Area_Top.Size = new System.Drawing.Size(628, 26);
|
|
this._GlobalxForm_Toolbars_Dock_Area_Top.ToolbarsManager = this.tbManager;
|
|
//
|
|
// _GlobalxForm_Toolbars_Dock_Area_Bottom
|
|
//
|
|
this._GlobalxForm_Toolbars_Dock_Area_Bottom.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Bottom.BackColor = System.Drawing.SystemColors.Control;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Bottom.DockedPosition = Infragistics.Win.UltraWinToolbars.DockedPosition.Bottom;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Bottom.ForeColor = System.Drawing.SystemColors.ControlText;
|
|
this._GlobalxForm_Toolbars_Dock_Area_Bottom.Location = new System.Drawing.Point(0, 443);
|
|
this._GlobalxForm_Toolbars_Dock_Area_Bottom.Name = "_GlobalxForm_Toolbars_Dock_Area_Bottom";
|
|
this._GlobalxForm_Toolbars_Dock_Area_Bottom.Size = new System.Drawing.Size(628, 0);
|
|
this._GlobalxForm_Toolbars_Dock_Area_Bottom.ToolbarsManager = this.tbManager;
|
|
//
|
|
// GlobalxForm
|
|
//
|
|
this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
|
|
this.ClientSize = new System.Drawing.Size(628, 443);
|
|
this.Controls.Add(this.edNotes);
|
|
this.Controls.Add(this._GlobalxForm_Toolbars_Dock_Area_Left);
|
|
this.Controls.Add(this._GlobalxForm_Toolbars_Dock_Area_Right);
|
|
this.Controls.Add(this._GlobalxForm_Toolbars_Dock_Area_Bottom);
|
|
this.Controls.Add(this._GlobalxForm_Toolbars_Dock_Area_Top);
|
|
this.MaximizeBox = false;
|
|
this.MinimizeBox = false;
|
|
this.Name = "GlobalxForm";
|
|
this.Load += new System.EventHandler(this.GlobalxForm_Load);
|
|
((System.ComponentModel.ISupportInitialize)(this.edNotes)).EndInit();
|
|
((System.ComponentModel.ISupportInitialize)(this.tbManager)).EndInit();
|
|
this.ResumeLayout(false);
|
|
this.PerformLayout();
|
|
|
|
}
|
|
#endregion
|
|
|
|
private void GlobalxForm_Load(object sender, System.EventArgs e)
|
|
{
|
|
Icon = Resource1.AyaNova5;
|
|
//case 1039 //log.Debug("GlobalxForm_Load");
|
|
Util.Localize(this);
|
|
edNotes.Text = AyaBizUtils.View();
|
|
if (LicenseOnlyMode)
|
|
{
|
|
//hide the erase database option
|
|
tbManager.Tools["LT:Admin.Label.EraseDatabase"].SharedProps.Visible = false;
|
|
}
|
|
}
|
|
|
|
private void tbManager_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
|
|
{
|
|
switch (e.Tool.Key)
|
|
{
|
|
|
|
|
|
case "LT:Admin.Label.EraseDatabase": // ButtonTool
|
|
if (AyaBizUtils.Trial)
|
|
{
|
|
//case 3646 changed this block
|
|
MessageBox.Show("Erasing a trial database can make it harder to evaluate AyaNova.\r\nPlease be sure you are familiar with AyaNova first.");
|
|
//MessageBox.Show("This feature requires a license.\r\nTrial databases can not be erased.");
|
|
//return;
|
|
}
|
|
if (!AyaBizUtils.Lite && !User.IsAdmin)
|
|
{
|
|
Util.PromptAdministratorOnly();
|
|
return;
|
|
}
|
|
// Place code here
|
|
if (Util.PromptYesNoFromLocaleKey("Admin.Label.EraseDatabaseWarning") != DialogResult.Yes)
|
|
return;
|
|
|
|
if (Util.PromptYesNoFromLocaleKey("Admin.Label.EraseDatabaseLastWarning") != DialogResult.Yes)
|
|
return;
|
|
Cursor.Current = Cursors.WaitCursor;
|
|
DBManager.EraseDatabase("I_UNDERSTAND_ALL_DATA_WILL_BE_ERASED_AND_I_ACCEPT_RESPONSIBILITY");
|
|
Application.Exit();
|
|
break;
|
|
|
|
|
|
case "LT:Admin.Label.PasteLicense": // ButtonTool
|
|
if (!AyaBizUtils.Lite && !User.IsAdmin)
|
|
{
|
|
Util.PromptAdministratorOnly();
|
|
return;
|
|
}
|
|
if (Clipboard.GetDataObject().GetDataPresent(typeof(string)))
|
|
{
|
|
string s = (string)Clipboard.GetDataObject().GetData(typeof(string));
|
|
|
|
//case 1172
|
|
string sKeyType = "AyaNovaLiteLicenseKey";
|
|
|
|
if (s.Contains("AyaNovaLicenseKey"))//modified to take out <> for case 3122
|
|
{
|
|
sKeyType = "AyaNovaLicenseKey";
|
|
}
|
|
|
|
bool containsXML = s.Contains("<?xml version=\"1.0\" encoding=\"utf-16\" standalone=\"yes\"?>");
|
|
bool containsJSON = s.Contains("[KEY");
|
|
if (!containsXML && !containsJSON)
|
|
{
|
|
Util.PromptWithIconOKOnlyFromLocaleKey("Key.Error.NotFound", MessageBoxIcon.Error);
|
|
return;
|
|
}
|
|
|
|
|
|
//Key sanity checks
|
|
bool isRequestedTrial = false;
|
|
int newScheduleableUsers = 0;
|
|
|
|
if (containsJSON)
|
|
{
|
|
string keyNoWS = System.Text.RegularExpressions.Regex.Replace(AyaBizUtils.ExtractString(s, "[KEY", "KEY]").Trim(), "(\"(?:[^\"\\\\]|\\\\.)*\")|\\s+", "$1").ToLowerInvariant();
|
|
if (keyNoWS.Contains("\"RequestedTrial\":\"True\"".ToLowerInvariant()))
|
|
{
|
|
isRequestedTrial = true;
|
|
}
|
|
|
|
newScheduleableUsers = int.Parse(AyaBizUtils.ExtractString(keyNoWS, ",\"TotalScheduleableUsers\":\"".ToLowerInvariant(), "\","));
|
|
}
|
|
else
|
|
{
|
|
//xml key
|
|
isRequestedTrial = s.Contains("RequestedTrial>true");
|
|
newScheduleableUsers = int.Parse(AyaBizUtils.ExtractString(s, "<TotalScheduleableUsers>", "</TotalScheduleableUsers>"));
|
|
}
|
|
|
|
|
|
if (AyaBizUtils.RequestedTrial && isRequestedTrial)
|
|
{
|
|
MessageBox.Show(
|
|
"This requested trial license can not be used because this database already contains a requested trial license\r\n"
|
|
, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
|
|
return;
|
|
}
|
|
|
|
//Don't allow them to enter a lite key into a db that is currently not a standalone firebird
|
|
//otherwise they could permanently lock themselves out of the db (until we fixed it of course)
|
|
if (sKeyType == "AyaNovaLiteLicenseKey" && !AyaBizUtils.AyaNovaConnectionSetting.SingleUserConnection)
|
|
{
|
|
MessageBox.Show(
|
|
"This AyaNova Lite license can not be used because the current database is not a single user stand alone FireBird database.\r\n" +
|
|
"AyaNova Lite can not be used with a Firebird server or Microsoft SQL server.\r\n", "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
|
|
return;
|
|
}
|
|
|
|
//case 2084
|
|
//warn if less users in new key than in current license
|
|
if (!AyaBizUtils.Trial)
|
|
{
|
|
if (AyaBizUtils.ScheduleableUsers > newScheduleableUsers)
|
|
{
|
|
//case 3199
|
|
if (MessageBox.Show("WARNING: The Key you are about to apply is for less scheduleable resource licenses than your database is presently licensed for.\r\n\r\nPlease cancel and resolve; or select OK to apply", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) != DialogResult.OK)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
if (!AyaBizUtils.Insert(s))
|
|
{
|
|
Util.PromptWithIconOKOnlyFromLocaleKey("Key.Error.NotValid", MessageBoxIcon.Error);
|
|
Application.Exit();
|
|
}
|
|
else
|
|
{
|
|
edNotes.Text = AyaBizUtils.View();
|
|
Util.PromptWithIconOKOnlyFromLocaleKey("Key.Label.Saved", MessageBoxIcon.Information);
|
|
Application.Exit();
|
|
}
|
|
}
|
|
else
|
|
Util.PromptWithIconOKOnlyFromLocaleKey("Key.Error.NotFound", MessageBoxIcon.Error);
|
|
break;
|
|
|
|
//case 3233
|
|
case "fetch":
|
|
{
|
|
if (!AyaBizUtils.Lite && !User.IsAdmin)
|
|
{
|
|
Util.PromptAdministratorOnly();
|
|
return;
|
|
}
|
|
GlobalFetchKey d = new GlobalFetchKey();
|
|
d.ShowDialog();
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|