Initial Commit
This commit is contained in:
122
TomcatServer/RegistrationAPI_Tester/ChangeRegServerModalForm.Designer.cs
generated
Normal file
122
TomcatServer/RegistrationAPI_Tester/ChangeRegServerModalForm.Designer.cs
generated
Normal file
@@ -0,0 +1,122 @@
|
||||
namespace RegistrationAPI_Tester
|
||||
{
|
||||
partial class ChangeRegServerModalForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (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.btnOK = new System.Windows.Forms.Button();
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.textHost = new System.Windows.Forms.TextBox();
|
||||
this.lblPort = new System.Windows.Forms.Label();
|
||||
this.textPort = new System.Windows.Forms.TextBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// btnOK
|
||||
//
|
||||
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.btnOK.Location = new System.Drawing.Point(255, 105);
|
||||
this.btnOK.Name = "btnOK";
|
||||
this.btnOK.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnOK.TabIndex = 2;
|
||||
this.btnOK.Text = "OK";
|
||||
this.btnOK.UseVisualStyleBackColor = true;
|
||||
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.Location = new System.Drawing.Point(58, 105);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCancel.TabIndex = 3;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(24, 37);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(27, 13);
|
||||
this.label1.TabIndex = 2;
|
||||
this.label1.Text = "host";
|
||||
//
|
||||
// textHost
|
||||
//
|
||||
this.textHost.Location = new System.Drawing.Point(58, 33);
|
||||
this.textHost.Name = "textHost";
|
||||
this.textHost.Size = new System.Drawing.Size(272, 20);
|
||||
this.textHost.TabIndex = 0;
|
||||
//
|
||||
// lblPort
|
||||
//
|
||||
this.lblPort.AutoSize = true;
|
||||
this.lblPort.Location = new System.Drawing.Point(26, 71);
|
||||
this.lblPort.Name = "lblPort";
|
||||
this.lblPort.Size = new System.Drawing.Size(25, 13);
|
||||
this.lblPort.TabIndex = 4;
|
||||
this.lblPort.Text = "port";
|
||||
//
|
||||
// textPort
|
||||
//
|
||||
this.textPort.Location = new System.Drawing.Point(58, 68);
|
||||
this.textPort.Name = "textPort";
|
||||
this.textPort.Size = new System.Drawing.Size(75, 20);
|
||||
this.textPort.TabIndex = 1;
|
||||
this.textPort.Text = "1949";
|
||||
//
|
||||
// ChangeRegServerModalForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(361, 150);
|
||||
this.Controls.Add(this.textPort);
|
||||
this.Controls.Add(this.lblPort);
|
||||
this.Controls.Add(this.textHost);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.btnCancel);
|
||||
this.Controls.Add(this.btnOK);
|
||||
this.Name = "ChangeRegServerModalForm";
|
||||
this.Text = "Reg Server Settings";
|
||||
this.Load += new System.EventHandler(this.ChangeRegServerModalForm_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button btnOK;
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox textHost;
|
||||
private System.Windows.Forms.Label lblPort;
|
||||
private System.Windows.Forms.TextBox textPort;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
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;
|
||||
|
||||
namespace RegistrationAPI_Tester
|
||||
{
|
||||
|
||||
public partial class ChangeRegServerModalForm : Form
|
||||
{
|
||||
private static string s_url = "services.ndchealthvar.com";
|
||||
|
||||
public ChangeRegServerModalForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.DialogResult = DialogResult.Cancel;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void btnOK_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (String.IsNullOrEmpty(textHost.Text) ||
|
||||
String.IsNullOrEmpty(textPort.Text))
|
||||
{
|
||||
MessageBox.Show("Host and Port can not be empty");
|
||||
return;
|
||||
}
|
||||
|
||||
uint nPort = 0;
|
||||
if (!uint.TryParse(textPort.Text, out nPort) && nPort > 0)
|
||||
{
|
||||
MessageBox.Show("Port is invalid");
|
||||
return;
|
||||
}
|
||||
|
||||
s_url = textHost.Text;
|
||||
RegistrationAPI.API.SetNetworkSettings(textHost.Text, nPort);
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void ChangeRegServerModalForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
textHost.Text = s_url;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
Binary file not shown.
489
TomcatServer/RegistrationAPI_Tester/MainForm.Designer.cs
generated
Normal file
489
TomcatServer/RegistrationAPI_Tester/MainForm.Designer.cs
generated
Normal file
@@ -0,0 +1,489 @@
|
||||
namespace RegistrationAPI_Tester
|
||||
{
|
||||
partial class MainForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (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()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.lblReinstall = new System.Windows.Forms.Label();
|
||||
this.btnReinstall = new System.Windows.Forms.Button();
|
||||
this.lblIsOnMckessonNetwork = new System.Windows.Forms.Label();
|
||||
this.lblUpdate = new System.Windows.Forms.Label();
|
||||
this.btnUpdateService = new System.Windows.Forms.Button();
|
||||
this.lblLatestVersion = new System.Windows.Forms.Label();
|
||||
this.lblServiceVersion = new System.Windows.Forms.Label();
|
||||
this.label9 = new System.Windows.Forms.Label();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.label15 = new System.Windows.Forms.Label();
|
||||
this.label11 = new System.Windows.Forms.Label();
|
||||
this.lblServiceStatus = new System.Windows.Forms.Label();
|
||||
this.lable3 = new System.Windows.Forms.Label();
|
||||
this.label14 = new System.Windows.Forms.Label();
|
||||
this.textExternalPort = new System.Windows.Forms.TextBox();
|
||||
this.label13 = new System.Windows.Forms.Label();
|
||||
this.textExternalIP = new System.Windows.Forms.TextBox();
|
||||
this.label12 = new System.Windows.Forms.Label();
|
||||
this.textInternalIP = new System.Windows.Forms.TextBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.textHostGUID = new System.Windows.Forms.TextBox();
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.textDetectedInternalIP = new System.Windows.Forms.TextBox();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.textDetectedExternalIP = new System.Windows.Forms.TextBox();
|
||||
this.btnUpdateHost = new System.Windows.Forms.Button();
|
||||
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.btnIsServerReachable = new System.Windows.Forms.Button();
|
||||
this.tabControl1 = new System.Windows.Forms.TabControl();
|
||||
this.tabPage1 = new System.Windows.Forms.TabPage();
|
||||
this.btnServiceStartStop = new System.Windows.Forms.Button();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.groupBox2.SuspendLayout();
|
||||
this.groupBox3.SuspendLayout();
|
||||
this.tabControl1.SuspendLayout();
|
||||
this.tabPage1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.lblReinstall);
|
||||
this.groupBox1.Controls.Add(this.btnReinstall);
|
||||
this.groupBox1.Controls.Add(this.lblIsOnMckessonNetwork);
|
||||
this.groupBox1.Controls.Add(this.lblUpdate);
|
||||
this.groupBox1.Controls.Add(this.btnUpdateService);
|
||||
this.groupBox1.Controls.Add(this.lblLatestVersion);
|
||||
this.groupBox1.Controls.Add(this.lblServiceVersion);
|
||||
this.groupBox1.Controls.Add(this.label9);
|
||||
this.groupBox1.Controls.Add(this.label8);
|
||||
this.groupBox1.Controls.Add(this.label15);
|
||||
this.groupBox1.Controls.Add(this.label11);
|
||||
this.groupBox1.Controls.Add(this.lblServiceStatus);
|
||||
this.groupBox1.Controls.Add(this.lable3);
|
||||
this.groupBox1.Controls.Add(this.label14);
|
||||
this.groupBox1.Controls.Add(this.textExternalPort);
|
||||
this.groupBox1.Controls.Add(this.label13);
|
||||
this.groupBox1.Controls.Add(this.textExternalIP);
|
||||
this.groupBox1.Controls.Add(this.label12);
|
||||
this.groupBox1.Controls.Add(this.textInternalIP);
|
||||
this.groupBox1.Controls.Add(this.label1);
|
||||
this.groupBox1.Controls.Add(this.textHostGUID);
|
||||
this.groupBox1.Location = new System.Drawing.Point(8, 57);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(524, 288);
|
||||
this.groupBox1.TabIndex = 0;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "Mobile Api Service Status";
|
||||
//
|
||||
// lblReinstall
|
||||
//
|
||||
this.lblReinstall.Location = new System.Drawing.Point(240, 258);
|
||||
this.lblReinstall.Name = "lblReinstall";
|
||||
this.lblReinstall.Size = new System.Drawing.Size(278, 16);
|
||||
this.lblReinstall.TabIndex = 28;
|
||||
this.lblReinstall.Text = "Reinstall the service completely";
|
||||
//
|
||||
// btnReinstall
|
||||
//
|
||||
this.btnReinstall.Location = new System.Drawing.Point(102, 254);
|
||||
this.btnReinstall.Name = "btnReinstall";
|
||||
this.btnReinstall.Size = new System.Drawing.Size(122, 23);
|
||||
this.btnReinstall.TabIndex = 27;
|
||||
this.btnReinstall.Text = "Reinstall Service";
|
||||
this.btnReinstall.UseVisualStyleBackColor = true;
|
||||
this.btnReinstall.Click += new System.EventHandler(this.btnReinstall_Click);
|
||||
//
|
||||
// lblIsOnMckessonNetwork
|
||||
//
|
||||
this.lblIsOnMckessonNetwork.AutoSize = true;
|
||||
this.lblIsOnMckessonNetwork.ForeColor = System.Drawing.Color.Red;
|
||||
this.lblIsOnMckessonNetwork.Location = new System.Drawing.Point(293, 190);
|
||||
this.lblIsOnMckessonNetwork.Name = "lblIsOnMckessonNetwork";
|
||||
this.lblIsOnMckessonNetwork.Size = new System.Drawing.Size(187, 13);
|
||||
this.lblIsOnMckessonNetwork.TabIndex = 26;
|
||||
this.lblIsOnMckessonNetwork.Text = "Machine is on the McKesson Network";
|
||||
//
|
||||
// lblUpdate
|
||||
//
|
||||
this.lblUpdate.Location = new System.Drawing.Point(239, 229);
|
||||
this.lblUpdate.Name = "lblUpdate";
|
||||
this.lblUpdate.Size = new System.Drawing.Size(237, 16);
|
||||
this.lblUpdate.TabIndex = 25;
|
||||
this.lblUpdate.Text = "Updating the service will close this Application";
|
||||
this.lblUpdate.Visible = false;
|
||||
//
|
||||
// btnUpdateService
|
||||
//
|
||||
this.btnUpdateService.Enabled = false;
|
||||
this.btnUpdateService.Location = new System.Drawing.Point(102, 225);
|
||||
this.btnUpdateService.Name = "btnUpdateService";
|
||||
this.btnUpdateService.Size = new System.Drawing.Size(122, 23);
|
||||
this.btnUpdateService.TabIndex = 24;
|
||||
this.btnUpdateService.Text = "Update Service Now";
|
||||
this.btnUpdateService.UseVisualStyleBackColor = true;
|
||||
this.btnUpdateService.Click += new System.EventHandler(this.btnUpdateService_Click);
|
||||
//
|
||||
// lblLatestVersion
|
||||
//
|
||||
this.lblLatestVersion.AutoSize = true;
|
||||
this.lblLatestVersion.Location = new System.Drawing.Point(103, 201);
|
||||
this.lblLatestVersion.Name = "lblLatestVersion";
|
||||
this.lblLatestVersion.Size = new System.Drawing.Size(53, 13);
|
||||
this.lblLatestVersion.TabIndex = 23;
|
||||
this.lblLatestVersion.Text = "Unknown";
|
||||
//
|
||||
// lblServiceVersion
|
||||
//
|
||||
this.lblServiceVersion.AutoSize = true;
|
||||
this.lblServiceVersion.Location = new System.Drawing.Point(103, 176);
|
||||
this.lblServiceVersion.Name = "lblServiceVersion";
|
||||
this.lblServiceVersion.Size = new System.Drawing.Size(53, 13);
|
||||
this.lblServiceVersion.TabIndex = 22;
|
||||
this.lblServiceVersion.Text = "Unknown";
|
||||
//
|
||||
// label9
|
||||
//
|
||||
this.label9.AutoSize = true;
|
||||
this.label9.Location = new System.Drawing.Point(19, 201);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(77, 13);
|
||||
this.label9.TabIndex = 21;
|
||||
this.label9.Text = "Latest Version:";
|
||||
//
|
||||
// label8
|
||||
//
|
||||
this.label8.AutoSize = true;
|
||||
this.label8.Location = new System.Drawing.Point(12, 176);
|
||||
this.label8.Name = "label8";
|
||||
this.label8.Size = new System.Drawing.Size(84, 13);
|
||||
this.label8.TabIndex = 20;
|
||||
this.label8.Text = "Service Version:";
|
||||
//
|
||||
// label15
|
||||
//
|
||||
this.label15.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.label15.ForeColor = System.Drawing.Color.Green;
|
||||
this.label15.Location = new System.Drawing.Point(291, 160);
|
||||
this.label15.Name = "label15";
|
||||
this.label15.Size = new System.Drawing.Size(208, 19);
|
||||
this.label15.TabIndex = 19;
|
||||
this.label15.Text = "This screen refreshes every 15 seconds";
|
||||
//
|
||||
// label11
|
||||
//
|
||||
this.label11.Location = new System.Drawing.Point(291, 90);
|
||||
this.label11.Name = "label11";
|
||||
this.label11.Size = new System.Drawing.Size(211, 71);
|
||||
this.label11.TabIndex = 18;
|
||||
this.label11.Text = "The \'Mobile Api Service\' detects a local IP change every 10 seconds and an extern" +
|
||||
"al IP change every 5 minutes. It then notifies McKesson\'s Mobile Gateway";
|
||||
//
|
||||
// lblServiceStatus
|
||||
//
|
||||
this.lblServiceStatus.ForeColor = System.Drawing.Color.Red;
|
||||
this.lblServiceStatus.Location = new System.Drawing.Point(98, 31);
|
||||
this.lblServiceStatus.Name = "lblServiceStatus";
|
||||
this.lblServiceStatus.Size = new System.Drawing.Size(401, 13);
|
||||
this.lblServiceStatus.TabIndex = 17;
|
||||
this.lblServiceStatus.Text = "Unknown";
|
||||
//
|
||||
// lable3
|
||||
//
|
||||
this.lable3.AutoSize = true;
|
||||
this.lable3.Location = new System.Drawing.Point(13, 31);
|
||||
this.lable3.Name = "lable3";
|
||||
this.lable3.Size = new System.Drawing.Size(79, 13);
|
||||
this.lable3.TabIndex = 16;
|
||||
this.lable3.Text = "Service Status:";
|
||||
//
|
||||
// label14
|
||||
//
|
||||
this.label14.AutoSize = true;
|
||||
this.label14.Location = new System.Drawing.Point(25, 148);
|
||||
this.label14.Name = "label14";
|
||||
this.label14.Size = new System.Drawing.Size(70, 13);
|
||||
this.label14.TabIndex = 15;
|
||||
this.label14.Text = "External Port:";
|
||||
//
|
||||
// textExternalPort
|
||||
//
|
||||
this.textExternalPort.Location = new System.Drawing.Point(102, 144);
|
||||
this.textExternalPort.Name = "textExternalPort";
|
||||
this.textExternalPort.ReadOnly = true;
|
||||
this.textExternalPort.Size = new System.Drawing.Size(70, 20);
|
||||
this.textExternalPort.TabIndex = 3;
|
||||
//
|
||||
// label13
|
||||
//
|
||||
this.label13.AutoSize = true;
|
||||
this.label13.Location = new System.Drawing.Point(33, 119);
|
||||
this.label13.Name = "label13";
|
||||
this.label13.Size = new System.Drawing.Size(61, 13);
|
||||
this.label13.TabIndex = 13;
|
||||
this.label13.Text = "External IP:";
|
||||
//
|
||||
// textExternalIP
|
||||
//
|
||||
this.textExternalIP.Location = new System.Drawing.Point(102, 116);
|
||||
this.textExternalIP.Name = "textExternalIP";
|
||||
this.textExternalIP.ReadOnly = true;
|
||||
this.textExternalIP.Size = new System.Drawing.Size(167, 20);
|
||||
this.textExternalIP.TabIndex = 2;
|
||||
//
|
||||
// label12
|
||||
//
|
||||
this.label12.AutoSize = true;
|
||||
this.label12.Location = new System.Drawing.Point(43, 89);
|
||||
this.label12.Name = "label12";
|
||||
this.label12.Size = new System.Drawing.Size(49, 13);
|
||||
this.label12.TabIndex = 11;
|
||||
this.label12.Text = "Local IP:";
|
||||
//
|
||||
// textInternalIP
|
||||
//
|
||||
this.textInternalIP.Location = new System.Drawing.Point(102, 86);
|
||||
this.textInternalIP.Name = "textInternalIP";
|
||||
this.textInternalIP.ReadOnly = true;
|
||||
this.textInternalIP.Size = new System.Drawing.Size(167, 20);
|
||||
this.textInternalIP.TabIndex = 1;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(31, 61);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(62, 13);
|
||||
this.label1.TabIndex = 1;
|
||||
this.label1.Text = "Host GUID:";
|
||||
//
|
||||
// textHostGUID
|
||||
//
|
||||
this.textHostGUID.Location = new System.Drawing.Point(102, 58);
|
||||
this.textHostGUID.Name = "textHostGUID";
|
||||
this.textHostGUID.ReadOnly = true;
|
||||
this.textHostGUID.Size = new System.Drawing.Size(299, 20);
|
||||
this.textHostGUID.TabIndex = 0;
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
this.groupBox2.Controls.Add(this.textDetectedInternalIP);
|
||||
this.groupBox2.Controls.Add(this.label6);
|
||||
this.groupBox2.Controls.Add(this.label5);
|
||||
this.groupBox2.Controls.Add(this.textDetectedExternalIP);
|
||||
this.groupBox2.Controls.Add(this.btnUpdateHost);
|
||||
this.groupBox2.Location = new System.Drawing.Point(8, 350);
|
||||
this.groupBox2.Name = "groupBox2";
|
||||
this.groupBox2.Size = new System.Drawing.Size(524, 103);
|
||||
this.groupBox2.TabIndex = 1;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "McKesson\'s Mobile Gateway";
|
||||
//
|
||||
// textDetectedInternalIP
|
||||
//
|
||||
this.textDetectedInternalIP.Location = new System.Drawing.Point(154, 68);
|
||||
this.textDetectedInternalIP.Name = "textDetectedInternalIP";
|
||||
this.textDetectedInternalIP.ReadOnly = true;
|
||||
this.textDetectedInternalIP.Size = new System.Drawing.Size(167, 20);
|
||||
this.textDetectedInternalIP.TabIndex = 17;
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(42, 71);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(96, 13);
|
||||
this.label6.TabIndex = 16;
|
||||
this.label6.Text = "Detected Local IP:";
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(31, 35);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(108, 13);
|
||||
this.label5.TabIndex = 15;
|
||||
this.label5.Text = "Detected External IP:";
|
||||
//
|
||||
// textDetectedExternalIP
|
||||
//
|
||||
this.textDetectedExternalIP.Location = new System.Drawing.Point(154, 33);
|
||||
this.textDetectedExternalIP.Name = "textDetectedExternalIP";
|
||||
this.textDetectedExternalIP.ReadOnly = true;
|
||||
this.textDetectedExternalIP.Size = new System.Drawing.Size(167, 20);
|
||||
this.textDetectedExternalIP.TabIndex = 14;
|
||||
//
|
||||
// btnUpdateHost
|
||||
//
|
||||
this.btnUpdateHost.BackColor = System.Drawing.Color.ForestGreen;
|
||||
this.btnUpdateHost.Enabled = false;
|
||||
this.btnUpdateHost.ForeColor = System.Drawing.Color.White;
|
||||
this.btnUpdateHost.Location = new System.Drawing.Point(352, 30);
|
||||
this.btnUpdateHost.Name = "btnUpdateHost";
|
||||
this.btnUpdateHost.Size = new System.Drawing.Size(150, 58);
|
||||
this.btnUpdateHost.TabIndex = 11;
|
||||
this.btnUpdateHost.Text = "Update IPs Now";
|
||||
this.btnUpdateHost.UseVisualStyleBackColor = false;
|
||||
this.btnUpdateHost.Click += new System.EventHandler(this.btnUpdateHost_Click);
|
||||
//
|
||||
// groupBox3
|
||||
//
|
||||
this.groupBox3.Controls.Add(this.label2);
|
||||
this.groupBox3.Controls.Add(this.btnIsServerReachable);
|
||||
this.groupBox3.Location = new System.Drawing.Point(8, 456);
|
||||
this.groupBox3.Name = "groupBox3";
|
||||
this.groupBox3.Size = new System.Drawing.Size(524, 75);
|
||||
this.groupBox3.TabIndex = 2;
|
||||
this.groupBox3.TabStop = false;
|
||||
this.groupBox3.Text = "Port Configuration";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Location = new System.Drawing.Point(80, 22);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(374, 18);
|
||||
this.label2.TabIndex = 1;
|
||||
this.label2.Text = "Make a call from the McKesson Mobile Gateway into this Server\'s IP and Port";
|
||||
//
|
||||
// btnIsServerReachable
|
||||
//
|
||||
this.btnIsServerReachable.Enabled = false;
|
||||
this.btnIsServerReachable.Location = new System.Drawing.Point(194, 44);
|
||||
this.btnIsServerReachable.Name = "btnIsServerReachable";
|
||||
this.btnIsServerReachable.Size = new System.Drawing.Size(127, 23);
|
||||
this.btnIsServerReachable.TabIndex = 0;
|
||||
this.btnIsServerReachable.Text = "Is Server Reachable";
|
||||
this.btnIsServerReachable.UseVisualStyleBackColor = true;
|
||||
this.btnIsServerReachable.Click += new System.EventHandler(this.btnIsServerReachable_Click);
|
||||
//
|
||||
// tabControl1
|
||||
//
|
||||
this.tabControl1.Controls.Add(this.tabPage1);
|
||||
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tabControl1.Location = new System.Drawing.Point(0, 0);
|
||||
this.tabControl1.Name = "tabControl1";
|
||||
this.tabControl1.SelectedIndex = 0;
|
||||
this.tabControl1.Size = new System.Drawing.Size(555, 565);
|
||||
this.tabControl1.TabIndex = 3;
|
||||
//
|
||||
// tabPage1
|
||||
//
|
||||
this.tabPage1.Controls.Add(this.btnServiceStartStop);
|
||||
this.tabPage1.Controls.Add(this.label3);
|
||||
this.tabPage1.Controls.Add(this.groupBox1);
|
||||
this.tabPage1.Controls.Add(this.groupBox3);
|
||||
this.tabPage1.Controls.Add(this.groupBox2);
|
||||
this.tabPage1.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabPage1.Name = "tabPage1";
|
||||
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPage1.Size = new System.Drawing.Size(547, 539);
|
||||
this.tabPage1.TabIndex = 0;
|
||||
this.tabPage1.Text = "Network Status";
|
||||
this.tabPage1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btnServiceStartStop
|
||||
//
|
||||
this.btnServiceStartStop.Location = new System.Drawing.Point(417, 17);
|
||||
this.btnServiceStartStop.Name = "btnServiceStartStop";
|
||||
this.btnServiceStartStop.Size = new System.Drawing.Size(114, 23);
|
||||
this.btnServiceStartStop.TabIndex = 26;
|
||||
this.btnServiceStartStop.Text = "Start Service";
|
||||
this.btnServiceStartStop.UseVisualStyleBackColor = true;
|
||||
this.btnServiceStartStop.Click += new System.EventHandler(this.btnServiceStartStop_Click);
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.Location = new System.Drawing.Point(13, 9);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(396, 46);
|
||||
this.label3.TabIndex = 27;
|
||||
this.label3.Text = resources.GetString("label3.Text");
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(555, 565);
|
||||
this.Controls.Add(this.tabControl1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "MainForm";
|
||||
this.Text = "Diagnose Mobile";
|
||||
this.Load += new System.EventHandler(this.MainForm_Load);
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
this.groupBox2.ResumeLayout(false);
|
||||
this.groupBox2.PerformLayout();
|
||||
this.groupBox3.ResumeLayout(false);
|
||||
this.tabControl1.ResumeLayout(false);
|
||||
this.tabPage1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox textHostGUID;
|
||||
private System.Windows.Forms.GroupBox groupBox2;
|
||||
private System.Windows.Forms.Button btnUpdateHost;
|
||||
private System.Windows.Forms.GroupBox groupBox3;
|
||||
private System.Windows.Forms.Label label14;
|
||||
private System.Windows.Forms.TextBox textExternalPort;
|
||||
private System.Windows.Forms.Label label13;
|
||||
private System.Windows.Forms.TextBox textExternalIP;
|
||||
private System.Windows.Forms.Label label12;
|
||||
private System.Windows.Forms.TextBox textInternalIP;
|
||||
private System.Windows.Forms.TabControl tabControl1;
|
||||
private System.Windows.Forms.TabPage tabPage1;
|
||||
private System.Windows.Forms.Label lblServiceStatus;
|
||||
private System.Windows.Forms.Label lable3;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.TextBox textDetectedExternalIP;
|
||||
private System.Windows.Forms.TextBox textDetectedInternalIP;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.Label label11;
|
||||
private System.Windows.Forms.Label label15;
|
||||
private System.Windows.Forms.Button btnUpdateService;
|
||||
private System.Windows.Forms.Label lblLatestVersion;
|
||||
private System.Windows.Forms.Label lblServiceVersion;
|
||||
private System.Windows.Forms.Label label9;
|
||||
private System.Windows.Forms.Label label8;
|
||||
private System.Windows.Forms.Label lblUpdate;
|
||||
private System.Windows.Forms.Button btnIsServerReachable;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Button btnServiceStartStop;
|
||||
private System.Windows.Forms.Label lblIsOnMckessonNetwork;
|
||||
private System.Windows.Forms.Label lblReinstall;
|
||||
private System.Windows.Forms.Button btnReinstall;
|
||||
}
|
||||
}
|
||||
|
||||
635
TomcatServer/RegistrationAPI_Tester/MainForm.cs
Normal file
635
TomcatServer/RegistrationAPI_Tester/MainForm.cs
Normal file
@@ -0,0 +1,635 @@
|
||||
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.Timers;
|
||||
using System.Net;
|
||||
using System.IO;
|
||||
using PlutoServer.MSL;
|
||||
using Yaulw.Net;
|
||||
using Yaulw.Thread;
|
||||
using Yaulw.Assembly;
|
||||
using Yaulw.Tools;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace RegistrationAPI_Tester
|
||||
{
|
||||
public partial class MainForm : Form
|
||||
{
|
||||
public MainForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
// Use this internal Channel
|
||||
internal const uint INTERNAL_CHANNEL_PORT = 1945;
|
||||
|
||||
// The Mobile Service Name
|
||||
internal const string MOBILE_API_SERVICE_NAME = "McKesson MSL Mobile Api Server";
|
||||
|
||||
// The Mobile Service Exe
|
||||
internal const string MOBILE_API_SERVICE_EXE = "PlutoServer.MSL.exe";
|
||||
|
||||
// Use this host to check, if we are on the McKesson Network
|
||||
internal const string MCK_HOST_TO_CHECK_ON_MCK_NETWORK = "ndh1fs01.mckesson.com";
|
||||
|
||||
// Used to display non-available fields
|
||||
internal const string NOT_AVAILABLE = "N/A";
|
||||
|
||||
// Did the service statup on the McKesson Network? Initialized upon Service Start
|
||||
internal static bool IsOnMcKessonNetwork = false;
|
||||
|
||||
// To keep track when we last time started the service
|
||||
private DateTime LastTimeServiceWasStarted = DateTime.MinValue;
|
||||
|
||||
// The current Directory the exe is running from
|
||||
internal static string curRunningDirectory = "";
|
||||
|
||||
/// <summary>
|
||||
/// Retrieve the LocalFileNameNPath for SetupMini File (TEMP FOLDER)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private static string MiniSetupFileNameNPath
|
||||
{
|
||||
get
|
||||
{
|
||||
string LocalFileNameNPath = Yaulw.Tools.PathNaming.PathEndsWithSlash(Path.GetTempPath()) + "SetupMini.exe";
|
||||
return LocalFileNameNPath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Retrieve the LocalFileNameNPath for Setup File (TEMP FOLDER)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private static string SetupFileNameNPath
|
||||
{
|
||||
get
|
||||
{
|
||||
string LocalFileNameNPath = Yaulw.Tools.PathNaming.PathEndsWithSlash(Path.GetTempPath()) + "Setup.exe";
|
||||
return LocalFileNameNPath;
|
||||
}
|
||||
}
|
||||
|
||||
#region Dispatcher
|
||||
|
||||
/// <summary>
|
||||
/// Dispatcher Timer
|
||||
/// </summary>
|
||||
private TTimerDisp dispTimer = null;
|
||||
|
||||
/// <summary>
|
||||
/// Dispatch Event Handler
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void ElapsedEventHandler(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
System.Timers.Timer timer = (System.Timers.Timer) sender;
|
||||
timer.Enabled = false;
|
||||
CheckServiceStatus();
|
||||
timer.Enabled = true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Set Service Status
|
||||
|
||||
/// <summary>
|
||||
/// Set the Service Status
|
||||
/// </summary>
|
||||
/// <param name="strStatus"></param>
|
||||
private void SetServiceStatus(string strStatus, System.Drawing.Color color)
|
||||
{
|
||||
this.lblServiceStatus.Text = strStatus;
|
||||
this.lblServiceStatus.ForeColor = color;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the Service Status
|
||||
/// </summary>
|
||||
/// <param name="strStatus"></param>
|
||||
private void SetServiceStatusGood(string strStatus)
|
||||
{
|
||||
SetServiceStatus(strStatus, System.Drawing.Color.Green);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the Service Status (Bad) Disables all readonly text fields and buttons)
|
||||
/// </summary>
|
||||
/// <param name="strStatus"></param>
|
||||
private void SetServiceStatusBad(string strStatus)
|
||||
{
|
||||
SetServiceStatus(strStatus, System.Drawing.Color.Red);
|
||||
ClearAllReadOnlyTextFields();
|
||||
DisableAllButtons();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clear all ReadOnly Text Fields (we are in a bad state)
|
||||
/// </summary>
|
||||
private void ClearAllReadOnlyTextFields()
|
||||
{
|
||||
textHostGUID.Text = "";
|
||||
textExternalIP.Text = "";
|
||||
textInternalIP.Text = "";
|
||||
textExternalPort.Text = "";
|
||||
lblServiceVersion.Text = "";
|
||||
lblLatestVersion.Text = "";
|
||||
textDetectedInternalIP.Text = "";
|
||||
textDetectedExternalIP.Text = "";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Disable all buttons (we are in a bad state)
|
||||
/// </summary>
|
||||
private void DisableAllButtons()
|
||||
{
|
||||
btnServiceStartStop.Enabled = false;
|
||||
btnUpdateService.Enabled = false;
|
||||
btnUpdateHost.Enabled = false;
|
||||
btnIsServerReachable.Enabled = false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Versioning
|
||||
|
||||
/// <summary>
|
||||
/// Fetch the Latest Version that is Online
|
||||
/// </summary>
|
||||
/// <returns>valid version object or null if error occured</returns>
|
||||
internal static Version FetchOnlineVerion()
|
||||
{
|
||||
string fetchVersion = Yaulw.Net.WCHelper.ScreenScrapeFromURL(Configuration.CHECK_VERSION_URL);
|
||||
if (!String.IsNullOrEmpty(fetchVersion))
|
||||
{
|
||||
fetchVersion = fetchVersion.Replace("\n", "");
|
||||
fetchVersion = fetchVersion.Replace("\r", "");
|
||||
fetchVersion = fetchVersion.Trim();
|
||||
|
||||
try
|
||||
{
|
||||
Version version = new Version(fetchVersion);
|
||||
return version;
|
||||
}
|
||||
catch (Exception) { /* ignore */ }
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Quick Check to see if the Local Service is out of date
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
internal static bool IsLocalServiceVersionOutOfDate(string LocalVersion, string OnlineVersion)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(LocalVersion) && !String.IsNullOrEmpty(OnlineVersion))
|
||||
{
|
||||
Version local = new Version(LocalVersion);
|
||||
Version online = new Version(OnlineVersion);
|
||||
if (online.Major == local.Major && online > local)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Main Status Logic
|
||||
/// </summary>
|
||||
private void CheckServiceStatus()
|
||||
{
|
||||
try
|
||||
{
|
||||
// Disable Reinstall by default, enable only in certain states
|
||||
EnableReinstallServiceButton(false);
|
||||
|
||||
bool bHasConnection = Yaulw.Net.IPHostHelper.HasConnection();
|
||||
if (!bHasConnection)
|
||||
{
|
||||
SetServiceStatusBad("Network Disconnected");
|
||||
return;
|
||||
}
|
||||
|
||||
// Enable the stop button, but only if Last Started has been longer than 2 minutes
|
||||
TimeSpan ts = DateTime.Now - LastTimeServiceWasStarted;
|
||||
bool bEnableStopButton = (ts.TotalMinutes >= 2.0);
|
||||
|
||||
bool bIsServiceRunning = Yaulw.Process.ServiceW.IsServiceRunning(MOBILE_API_SERVICE_NAME);
|
||||
if (!bIsServiceRunning)
|
||||
{
|
||||
SetServiceStatusBad("Service not running");
|
||||
btnServiceStartStop.Text = "Start Service";
|
||||
btnServiceStartStop.Enabled = true;
|
||||
|
||||
// Enable Update button, if we can access fileVersion of Pluto Service
|
||||
if (File.Exists(curRunningDirectory + MOBILE_API_SERVICE_EXE))
|
||||
{
|
||||
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(curRunningDirectory + MOBILE_API_SERVICE_EXE);
|
||||
if (fvi != null)
|
||||
{
|
||||
lblServiceVersion.Text = fvi.FileVersion;
|
||||
EnableButtonIfServiceIsOutOfDate();
|
||||
}
|
||||
|
||||
// Enable Reinstall
|
||||
EnableReinstallServiceButton(true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
bool bCanConnectViaPort = Yaulw.Net.IPHostHelper.IsPortOpen(IPAddress.Loopback, (int) INTERNAL_CHANNEL_PORT);
|
||||
if (!bCanConnectViaPort)
|
||||
{
|
||||
SetServiceStatusBad("DiagnoseMobile can't open the port to the Service");
|
||||
|
||||
// Service is running so enable the stop button
|
||||
btnServiceStartStop.Text = "Stop Service";
|
||||
btnServiceStartStop.Enabled = bEnableStopButton;
|
||||
return;
|
||||
}
|
||||
|
||||
// Service is running so enable the stop button
|
||||
btnServiceStartStop.Text = "Stop Service";
|
||||
btnServiceStartStop.Enabled = bEnableStopButton;
|
||||
|
||||
// Now let's start gathering Pluto Data
|
||||
textHostGUID.Text = Pluto.MSL.Api.API.GetHostGUID();
|
||||
|
||||
// if we got here, then the above call didn't throw an exception,
|
||||
// so we are doing good
|
||||
SetServiceStatusGood("Running");
|
||||
textInternalIP.Text = Pluto.MSL.Api.API.GetLocalIP();
|
||||
|
||||
// External IP could not be set, so don't confuse the customer,
|
||||
// use N/A instead of the default values
|
||||
IPAddress externalIP = IPAddress.None;
|
||||
if(IPAddress.TryParse(Pluto.MSL.Api.API.GetExternalIP(), out externalIP))
|
||||
{
|
||||
if (IsOnMcKessonNetwork || externalIP == IPAddress.None)
|
||||
textExternalIP.Text = NOT_AVAILABLE;
|
||||
else
|
||||
textExternalIP.Text = externalIP.ToString();
|
||||
}
|
||||
|
||||
// External Port could not be set, so don't confuse the customer,
|
||||
// use N/A instead of the default values
|
||||
int nPort = Pluto.MSL.Api.API.GetExternalPort();
|
||||
if(nPort == -1)
|
||||
textExternalPort.Text = NOT_AVAILABLE;
|
||||
else
|
||||
textExternalPort.Text = nPort.ToString();
|
||||
|
||||
// Check the Versions
|
||||
lblServiceVersion.Text = Pluto.MSL.Api.API.GetAPIVersion();
|
||||
EnableButtonIfServiceIsOutOfDate();
|
||||
|
||||
// Detect thee IP stuff
|
||||
textDetectedInternalIP.Text = Yaulw.Net.IPHostHelper.GetFirstLocalIPAddress().ToString();
|
||||
externalIP = Yaulw.Net.IPHostHelper.GetExternalIP();
|
||||
if (IsOnMcKessonNetwork || externalIP == IPAddress.None)
|
||||
textDetectedExternalIP.Text = NOT_AVAILABLE;
|
||||
else
|
||||
textDetectedExternalIP.Text = externalIP.ToString();
|
||||
|
||||
// Enable buttons
|
||||
btnUpdateHost.Enabled = true;
|
||||
btnIsServerReachable.Enabled = true;
|
||||
|
||||
// Enable Reinstall
|
||||
EnableReinstallServiceButton(true);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
SetServiceStatusBad(e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Responsible for fetching the online version and enabling the Update Button if
|
||||
/// service is out of date. The lblServiceVersion.Text needs to be set prior to calling
|
||||
/// this function. Will be used to compare.
|
||||
/// </summary>
|
||||
private void EnableButtonIfServiceIsOutOfDate()
|
||||
{
|
||||
if (!String.IsNullOrEmpty(lblServiceVersion.Text))
|
||||
{
|
||||
Version OnlineVersion = FetchOnlineVerion();
|
||||
if(OnlineVersion != null)
|
||||
{
|
||||
lblLatestVersion.Text = OnlineVersion.ToString();
|
||||
bool bIsOutOfDate = IsLocalServiceVersionOutOfDate(lblServiceVersion.Text, lblLatestVersion.Text);
|
||||
btnUpdateService.Enabled = bIsOutOfDate;
|
||||
lblUpdate.Visible = bIsOutOfDate;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Responsible for enabling the reinstall Service Button (should only
|
||||
/// be enabled in certain states)
|
||||
/// </summary>
|
||||
/// <param name="bEnable"></param>
|
||||
private void EnableReinstallServiceButton(bool bEnable)
|
||||
{
|
||||
lblReinstall.Visible = bEnable;
|
||||
btnReinstall.Enabled = bEnable;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Main Form OnLoad()
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void MainForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Load the PlutoServer.MSL.config File * Helps us to better test *
|
||||
Configuration.Load(false);
|
||||
|
||||
// IMP! Set the Determine External IP Address URL
|
||||
Yaulw.Net.IPHostHelper.WHAT_IS_MY_IP_AUTOMATION_URL = Configuration.DETERMINE_EXTERNAL_IP_ADDRESS_URL;
|
||||
|
||||
// Set the Current Run-time directory
|
||||
curRunningDirectory = PathNaming.PathEndsWithSlash(Path.GetDirectoryName(AssemblyW.SpecializedAssemblyInfo.GetAssemblyFileNameNPath(AssemblyW.AssemblyST.Entry)));
|
||||
|
||||
// Are we on the McKesson Network?
|
||||
IsOnMcKessonNetwork = Yaulw.Net.IPHostHelper.CanResolveHost(MCK_HOST_TO_CHECK_ON_MCK_NETWORK, true);
|
||||
//IsOnMcKessonNetwork = false; // For Debugging
|
||||
lblIsOnMckessonNetwork.Visible = IsOnMcKessonNetwork;
|
||||
|
||||
// Set the Pluto API
|
||||
Pluto.MSL.Api.API.SetNetworkSettings(IPAddress.Loopback.ToString(), INTERNAL_CHANNEL_PORT);
|
||||
|
||||
// Set the Registration API
|
||||
RegistrationAPI.API.SetNetworkSettings(Configuration.REGISTRATION_HOST_URL, (uint)Configuration.REGISTRATION_CHANNEL_PORT);
|
||||
|
||||
// By Default check the status
|
||||
CheckServiceStatus();
|
||||
|
||||
// then start the Status Dispatcher, every 15 seconds
|
||||
dispTimer = new TTimerDisp(ElapsedEventHandler, (int)TimeSpan.FromSeconds(15).TotalMilliseconds, true);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if the IP is a valid IP and also check that the Port is valid
|
||||
/// </summary>
|
||||
/// <param name="IP">IP Address as a string</param>
|
||||
/// <param name="Port">Port as a string</param>
|
||||
/// <returns>true, if IP and Port is valid</returns>
|
||||
private bool ValidIPandPort(string IP, string Port)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(IP) && !String.IsNullOrEmpty(Port))
|
||||
{
|
||||
IPAddress ip = IPAddress.Any;
|
||||
uint nPort = 0;
|
||||
bool bValidConfig = IPAddress.TryParse(IP, out ip) && uint.TryParse(Port, out nPort) &&
|
||||
(nPort > 0) && IPHostHelper.IsValidIPv4Address(ip, false);
|
||||
return bValidConfig;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update The Service if Needed (auto-closes the app)
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void btnUpdateService_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
// Important Sanity Clean-up, this way we know that the service or DiagnoseMobile
|
||||
// always downloads the latest setup and runs the latest setup
|
||||
try
|
||||
{
|
||||
if (File.Exists(MiniSetupFileNameNPath))
|
||||
File.Delete(MiniSetupFileNameNPath);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, "Updating the Service failed", String.Format("Failed to delete temporary setup file '{0}'. Please delete the file Manually.", MiniSetupFileNameNPath), MessageBoxButtons.OK);
|
||||
return;
|
||||
}
|
||||
|
||||
if (Yaulw.Net.WCHelper.DownloadFileFromURL(Configuration.DOWNLOAD_MINISETUP_URL, MiniSetupFileNameNPath, true))
|
||||
{
|
||||
// * Important * sanity check. Kumar/Jeff found this. State can happen that we can reach the
|
||||
// version url but don't actually download the file which then causes the service to crash when
|
||||
// calling PSetupSpwan (might as well also make sure that the new file is equal to the file we expect)
|
||||
if (File.Exists(MiniSetupFileNameNPath))
|
||||
{
|
||||
// Stop the service if it exists
|
||||
Yaulw.Installer.Common.StopService(MOBILE_API_SERVICE_NAME, 30);
|
||||
|
||||
// The auto-update is also forcing a close (however we will also try to committ suicide)
|
||||
Yaulw.Installer.Common.PSetupSpwan(MiniSetupFileNameNPath, "", false);
|
||||
|
||||
// * Double Knock-out * Force the Service to close here a kill itself here as well, don't know if this even get's called
|
||||
// but might as well make sure and double punch
|
||||
dispTimer.Stop();
|
||||
Application.Exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception) { /* ignore */}
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, "Updating the Service failed", String.Format("Failed to download the file to update the service, please download and install manually: '{0}'", Configuration.DOWNLOAD_MINISETUP_URL), MessageBoxButtons.OK);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update the IPs
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void btnUpdateHost_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Always make sure that the HOST_GUID Exists online on the Gateway Server
|
||||
// ~otherwise the update server will always fails and we don't know why, this way the user now knows
|
||||
bool bHostExists = RegistrationAPI.API.DoesServerHostGUIDExist(new Guid(textHostGUID.Text));
|
||||
if (!bHostExists)
|
||||
{
|
||||
Yaulw.WinForms.MsgBox.ShowInfo(this, "No Practices associated with the Server Host Guid", "No Practices have been associated with the McKesson Mobile Gateway. Use Help->Mobile About to retrieve an Api Key and Api Code for a practice to register a practice with the McKesson Mobile Gateway", MessageBoxButtons.OK);
|
||||
return;
|
||||
}
|
||||
|
||||
if (IsOnMcKessonNetwork)
|
||||
{
|
||||
bool bIsValidInternalConfig = ValidIPandPort(textDetectedInternalIP.Text, INTERNAL_CHANNEL_PORT.ToString());
|
||||
if (bIsValidInternalConfig)
|
||||
{
|
||||
if (RegistrationAPI.API.UpdateServer(new Guid(textHostGUID.Text), textDetectedInternalIP.Text, String.Empty, (uint)INTERNAL_CHANNEL_PORT))
|
||||
Yaulw.WinForms.MsgBox.ShowInfo(this, "Update IP Successful", "Updating the local IP succeeded with the McKesson Mobile Gateway. You are located on the McKesson Network.", MessageBoxButtons.OK);
|
||||
else
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, "Update IP Failed", "Updating the local IP failed with the McKesson Mobile Gateway. You are located on the McKesson Network.", MessageBoxButtons.OK);
|
||||
}
|
||||
else
|
||||
{
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, "Internal IP or Port not valid", String.Format("The internal IP or the Port are invalid internal IP:{0} on Port:{1}", textDetectedInternalIP.Text, INTERNAL_CHANNEL_PORT.ToString()), MessageBoxButtons.OK);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Check to make sure external IP and Port are valid
|
||||
bool bIsValidExternalConfig = ValidIPandPort(textDetectedExternalIP.Text, textExternalPort.Text);
|
||||
bool bIsValidInternalConfig = ValidIPandPort(textDetectedInternalIP.Text, INTERNAL_CHANNEL_PORT.ToString());
|
||||
if (bIsValidExternalConfig && bIsValidInternalConfig)
|
||||
{
|
||||
if (RegistrationAPI.API.UpdateServer(new Guid(textHostGUID.Text), textDetectedInternalIP.Text, textDetectedExternalIP.Text, uint.Parse(textExternalPort.Text)))
|
||||
Yaulw.WinForms.MsgBox.ShowInfo(this, "Update IPs Successful", "Updating the local IP and external IP succeeded with the McKesson Mobile Gateway.", MessageBoxButtons.OK);
|
||||
else
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, "Update IPs Failed", "Updating the local IP and external IP failed with the McKesson Mobile Gateway.", MessageBoxButtons.OK);
|
||||
}
|
||||
else if (bIsValidInternalConfig)
|
||||
{
|
||||
if (RegistrationAPI.API.UpdateServer(new Guid(textHostGUID.Text), textDetectedInternalIP.Text, String.Empty, (uint)INTERNAL_CHANNEL_PORT))
|
||||
Yaulw.WinForms.MsgBox.ShowInfo(this, "Update IP Successful", "Updating the local IP succeeded with the McKesson Mobile Gateway.", MessageBoxButtons.OK);
|
||||
else
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, "Update IP Failed", "Updating the local IP failed with the McKesson Mobile Gateway.", MessageBoxButtons.OK);
|
||||
}
|
||||
else
|
||||
{
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, "External IP/Internal IP/ or Port not valid", String.Format("The external IP / internal IP or the Port are invalid external IP:{0} internal IP:{1} on Port:{2}", textExternalIP.Text, textDetectedInternalIP.Text, textExternalPort.Text), MessageBoxButtons.OK);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, "Update IP Exception Thrown", ex.Message, MessageBoxButtons.OK);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Is this Server reachable?
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void btnIsServerReachable_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (IsOnMcKessonNetwork)
|
||||
{
|
||||
Yaulw.WinForms.MsgBox.ShowInfo(this, "McKesson Network", "Server won't be accessible from the Internet. You are located on the McKesson Network.", MessageBoxButtons.OK);
|
||||
}
|
||||
else
|
||||
{
|
||||
bool bValidConfig = ValidIPandPort(textDetectedExternalIP.Text, textExternalPort.Text);
|
||||
if (bValidConfig)
|
||||
{
|
||||
if (RegistrationAPI.API.IsServerReachable(textExternalIP.Text, uint.Parse(textExternalPort.Text)))
|
||||
Yaulw.WinForms.MsgBox.ShowInfo(this, "Communication Success", String.Format("McKesson's Mobile Gateway successfully communicated with IP:{0} on Port:{1}", textExternalIP.Text, textExternalPort.Text), MessageBoxButtons.OK);
|
||||
else
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, "Communication Failed", String.Format("McKesson's Mobile Gateway was unsuccessful in communicating with IP:{0} on Port:{1}", textExternalIP.Text, textExternalPort.Text), MessageBoxButtons.OK);
|
||||
}
|
||||
else
|
||||
{
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, "External IP or Port not valid", String.Format("The external IP or the external Port are invalid IP:{0} on Port:{1}", textExternalIP.Text, textExternalPort.Text), MessageBoxButtons.OK);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, "ServerReachable Exception Thrown", ex.Message, MessageBoxButtons.OK);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Allows the User to Start/Stop the Service (easily without having to go to SCM to do it)
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void btnServiceStartStop_Click(object sender, EventArgs e)
|
||||
{
|
||||
bool bStart = btnServiceStartStop.Text.StartsWith("Start");
|
||||
if (bStart)
|
||||
{
|
||||
LastTimeServiceWasStarted = DateTime.Now;
|
||||
bool bSuccess = Yaulw.Process.ServiceW.StartService(MOBILE_API_SERVICE_NAME);
|
||||
if (bSuccess)
|
||||
Yaulw.WinForms.MsgBox.ShowInfo(this, MOBILE_API_SERVICE_NAME, "The service successfully started.", MessageBoxButtons.OK);
|
||||
else
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, MOBILE_API_SERVICE_NAME, "The service start was unsuccessful.", MessageBoxButtons.OK);
|
||||
}
|
||||
else
|
||||
{
|
||||
bool bSuccess = Yaulw.Process.ServiceW.StopService(MOBILE_API_SERVICE_NAME);
|
||||
if(bSuccess)
|
||||
Yaulw.WinForms.MsgBox.ShowInfo(this, MOBILE_API_SERVICE_NAME, "The service successfully stopped.", MessageBoxButtons.OK);
|
||||
else
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, MOBILE_API_SERVICE_NAME, "The service stop was unsuccessful.", MessageBoxButtons.OK);
|
||||
}
|
||||
|
||||
// Refresh the form right aways, since the service start/stop occured may as well,
|
||||
// otherwise it looks a little clumsy
|
||||
CheckServiceStatus();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Force a Re-install of the service on this machine (Trouble shooting step)
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void btnReinstall_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
DialogResult result = Yaulw.WinForms.MsgBox.ShowInfo(this, "Do you want to continue?", String.Format("You are about to delete the '{0}' and download the complete setup.exe online from:'{1}' and then re-install it. The download may take some time, depending on the speed of your internet connection.", MOBILE_API_SERVICE_NAME, Configuration.DOWNLOAD_SETUP_URL), MessageBoxButtons.YesNo);
|
||||
if (result != System.Windows.Forms.DialogResult.Yes)
|
||||
return;
|
||||
|
||||
// Important Sanity Clean-up, this way we know that the service or DiagnoseMobile
|
||||
// always downloads the latest setup and runs the latest setup
|
||||
try
|
||||
{
|
||||
if (File.Exists(SetupFileNameNPath))
|
||||
File.Delete(SetupFileNameNPath);
|
||||
}
|
||||
catch(Exception)
|
||||
{
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, "Reinstalling the Service failed", String.Format("Failed to delete temporary setup file '{0}'. Please delete the file Manually.", SetupFileNameNPath), MessageBoxButtons.OK);
|
||||
return;
|
||||
}
|
||||
|
||||
if (Yaulw.Net.WCHelper.DownloadFileFromURL(Configuration.DOWNLOAD_SETUP_URL, SetupFileNameNPath, true))
|
||||
{
|
||||
// * Important * sanity check. Kumar/Jeff found this. State can happen that we can reach the
|
||||
// version url but don't actually download the file which then causes the service to crash when
|
||||
// calling PSetupSpwan (might as well also make sure that the new file is equal to the file we expect)
|
||||
if (File.Exists(SetupFileNameNPath))
|
||||
{
|
||||
// Stop the service if it exists
|
||||
Yaulw.Installer.Common.StopService(MOBILE_API_SERVICE_NAME, 30);
|
||||
|
||||
// The auto-update is also forcing a close (however we will also try to committ suicide)
|
||||
Yaulw.Installer.Common.PSetupSpwan(SetupFileNameNPath, "", false);
|
||||
|
||||
// * Double Knock-out * Force the Service to close here a kill itself here as well, don't know if this even get's called
|
||||
// but might as well make sure and double punch
|
||||
dispTimer.Stop();
|
||||
Application.Exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception) { /* ignore */}
|
||||
Yaulw.WinForms.MsgBox.ShowError(this, "Reinstalling the Service failed", String.Format("Failed to download the file to update the service, please download and install manually: '{0}'", Configuration.DOWNLOAD_SETUP_URL), MessageBoxButtons.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
383
TomcatServer/RegistrationAPI_Tester/MainForm.resx
Normal file
383
TomcatServer/RegistrationAPI_Tester/MainForm.resx
Normal file
@@ -0,0 +1,383 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="label3.Text" xml:space="preserve">
|
||||
<value>When the service is running you can 'Stop' the service. If it is not running you can 'Start' the service. There is a two minute delay after starting the service before you can stop it, to make sure it had time to initialize.</value>
|
||||
</data>
|
||||
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAMAEBAAAAAAIABoBAAANgAAACAgAAAAACAAqBAAAJ4EAAAwMAAAAAAgAKglAABGFQAAKAAAABAA
|
||||
AAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAP///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wGUWjBZiEUO7Xw7C+97SDFr////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wHGmHYFu3Ai3eefNP/Ogh7/fj0R6ayOeA////8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B0qyKBdWTPc/9ymP/6KM7/41KFN+oh28L////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wHWn18z2ppDxbx2Kc2eaUJB////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////AdDS0gO7czRvvn4vUayFWgW6k3AFzptDQdObLn3NvrMF////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wHBjFotym0N+d2EEfvilBzH6aMkw/a0I/n4vR3/58JyPf///wH///8B////Af//
|
||||
/wH///8B////Af///wGOXkRFn5CDB9KFLmfaghXp5ZEU//CiF//2siHt+8I6eefQmQWpgUpFsJ+bA///
|
||||
/wH///8B////Af///wGZWTFjrlQK/alfHaeJXjIZ1ZtZE9mVQEPfnURF6LRoF5RyWRPInUCX8884/dez
|
||||
THf///8B////Af///wGQgHwLsnA7M7FcEee/ZQ7/xnAT7dGFHKfemyh34qc5dd2pRaHqtDrn/cwx//7X
|
||||
QO3+210/iV1CCf///wGESi5rgz8W0XpNNiXBilcft2YarcVrEfnZfhH/6JQX//KmHP/5sh3/+roh+/bA
|
||||
NLf1y1snpX5SG9WyQcfRq02FgD0TkYpAB/+USg7rik8lYXFURAm1dkYlw3gua9OCJJHekCaT4JgzcdWS
|
||||
Ry2adV8HrIA0VeHBReH+4Fn//NxgucGfhguRTx2bmkwJ/axaDP+qXBfXtm8hh7+DLEvFiysxwoonMcOT
|
||||
QUXLmjl/2Kgxz/bSPv3+3lD//t1dp/7hiA////8Bx6mOA6dmL0urXRTRuGEO/8hsEf/ZgRT/55UX+/Cl
|
||||
Hfv2sSH//bwj//7JK//91kPX/dxgVf3giwX///8B////Af///wH///8BvY9nBbFvNzu9biOLzXohx9mG
|
||||
HefjlB/n66Qqy/CvMpPvtkdB9stlB////wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAP//AAD//wAA//8AAP//AAD//wAA
|
||||
//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//KAAAACAAAABAAAAAAQAgAAAA
|
||||
AACAEAAAAAAAAAAAAAAAAAAAAAAAAP///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wGzj3QJkmA9S31CH8V3OQztcDMI8XE3HM+JXEZfsJWDD///
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Aax/XkWMShnPkEYG/5pSC/+RSwj/ejUD/2gs
|
||||
FN+Ua1Zf////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wHJoocHrGszr7FfDf3UiCT/3Y8l/82A
|
||||
G/+uZBD/djAC/3hBKMe7o5IV////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AcWVcA+6cizJ0YMj//Ku
|
||||
Qf/6t0T/8KYx/86AHf+ORgf/eT0a3aOBaSX///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B0amGDciG
|
||||
Pr/dmDX//Mlh///NZP/5uUn/3pMr/5lOCf+ARBvVpYNqH////wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wHhx6wD0JdYidmUNvf6x2H//s1m//O0S//WjSv/jkIF/Y5XM6e0lH8L////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wHftYsf1JlSl96cPvPko0L904su/65kFPeTVimtuJaBL////wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////AerHpQPXqHUZ0phUecyMQq2+fjuzpWcuh6uBXyXSvbAD////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////AcGmkBGodEdVpHdENZ6McAX///8ByJRgCcWYcQv///8Bqo1rA8KW
|
||||
VSW8hjVbvphnHf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wHQ0tIJuYJVdcNmFOHKfB69s4ZKS452VQn///8B////AZeA
|
||||
aQW1jlg32qA3p+OmGunLmD6Tzb6zEf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8Bv5+BBbiKX1m6XQ311HYO/92BDv/dhhDvz4woq9WZ
|
||||
N4Hanzl91Jo3n+qoJeX6uSH9/cco/+uuEP3asmlx3sakCf///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wHJm20FyY5SV8hqDPXRdQ3/2YIV/+GI
|
||||
Ev/qkhD77ZkT9fGiGPX3qxn5+bUg//m5Jv/7wCb//cAY//XRcm/o060J////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wGJdXELgm1oEf///wHmx6MH05JMcc93
|
||||
E9fYewr/3YUS/+KOF//nlRj/7p4a//KnHP/2sB3/+bYd//u+JuX8wz6P/+efD////wGXdGMNknBcDf//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bkm1dA5FhSG2NWTqLh3x5E///
|
||||
/wHbrnkN1ZJDSdiIKrnagxXp440U/+mTDf/umw3/86cZ//SrH/H1tjHH+chZXfzLaBf///8BnYeHBayD
|
||||
Sn2qgkV/sJ+bC////wH///8B////Af///wH///8B////Af///wH///8B////AaWQgw+PVzZ1pE0Q9bFT
|
||||
B/2cXCqnh2BFN4ttUgP///8B26BeEdSZWDfUjTZv3ptDh+KjSonclTR35a9jQfDEdRf///8B////AY9n
|
||||
SyexiEaN6ME09+jCL/u9lUqPvKKBG////wH///8B////Af///wH///8B////Af///wH///8BtIxuMZhK
|
||||
GdOuUwf/t14L/7lfDPepYB3JjF4vUXZcRQ////8B2aFoA9GNPwndrIAN37aYDdePPgnosG0D////AYJk
|
||||
UgmXdVo/vpJFtea7N/P92Dz//d5B/+nDOuPev3FN////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wHOpoQXq2MplatSCPm1XQz/vmUO/8NoDP/AaxHzvXYfw7t8In+4hjdJvY07K82dSCPUn0UjvpROKbqP
|
||||
TT+8jkxzy59Wt9+tQev6xzH//9I0///XPf/+2T///tpNrf3lkSX///8B////Af///wH///8B////Aaqa
|
||||
kgOQgHwhkoJ8CdW1mQO7h1odtW0uq7BZCfe6Ygz/wGcR/8hqEP/PdBD92IMU892NGOPfmB7N5qMowemq
|
||||
McHkqjvL569D3+21Q/H4vTL9/cEn///ILP//0DL//dQ5+/3YTr392m0p/uenA4xiPwWJXUIhxrGlA///
|
||||
/wGokYgPkGRRc3s3HNuIV0GBcltVDf///wHSrIcRvoRPX7FdD927YQz7xWkO/8xvEv/UexT/3IQV/+aR
|
||||
Fv/rmBf/8KIc//SpIP/3sCH/+rQf//26H//+wCL//cYm/fjGM+X1ylV3+NFqG////wGli4MFp3s1Z8Ob
|
||||
NNO8lEuNtpRxGYdUOUF7NxXnhjoE/4Y+Du16SC11fmpjE////wHBj2AHuHxDRbhwLZW8aBjnx2sM/9V4
|
||||
C//dgw//5pAV/+qYGf/wohr/9Kka//iwGf/8thn/+7ke//OzJO/utT6n67RLVfDGdQ3///8BnH1yDaZ9
|
||||
TF3Ysj/j9txR/ePAQ+/KpFqDezcLU3oyBf2JQQj/kUQI/5FECfeITia5f1dCM3VjYQn///8Bt35MB7N1
|
||||
RCu2dkZjwHUvpcp6I8nVgh7b24gZ4eKRG+HlmSLd5ZwpzeOaMa/Zkz5z0JJYN9qjcgv///8BhGFUB5Bl
|
||||
OyWziTqh3bxA7/3iWP/+31v//t9U//XWZ7udb08vgkIbx4E2A/+PRQr/mEsJ/5tLCPuUTRjLgU0qe2FK
|
||||
Qxv///8B////AbV9Wwe3fFQVtnhQKblqLkHIh1FJ0YtKScp4LkPLgU0vy4lhGc6GRQnKi2UD////AXdc
|
||||
VhOSZjRpwJUyv+jKQvf74VP//uBb//7fWP/+3F7Z/uB4U////wHAnoQljU8huYk+BveXSwr/oFIN/6tY
|
||||
C/+pVgr7nFUb1ZZdLJOebz1DmGw3K49wUBGJgH0D////Af///wH///8B////AZeGewOWc0wNm288JamC
|
||||
TTmsgkCDuowyyeK6L/n52UP//+BR///fVP/+3lP5/t1cyf7hiDX/3IAF////Af///wGmdEwrnWExk5JD
|
||||
BfueTgr/qloO/7BeDv+0Xg7/t2EQ97xsGeG+dRvJwYElm8OJLnvLkTJlv4UjXbV+GlvNlTNjxZVCdcaV
|
||||
PpHNmzfB2aY13eq1LPX1xSz9/dc8///dSP//3U7//txM//3dYqX+4IA3/uOWA////wH///8B////Af//
|
||||
/wHHqY4JrnlLU6FXGremVgz3r1wM/7VgD/+6YhD/xWgR/81xEv/YfhL/3okT/eiVFvvsnBf376Qb9/Gq
|
||||
IfnzsCT997Qk//y6JP/+vyT//8Un///NMP//1z3//tlD+/3aUMP83m5n/uCKDf///wH///8B////Af//
|
||||
/wH///8B////Af///wG9lW8Fu4xiHapmKnurYh3Ts14L/7tiDf/DaBD/y3AT/9V6Ff/aghb/440X/+eV
|
||||
Gf/unxv/8qUc//WtHv/5syD//boh//69Iv/+xSb//swu//vSRd/81U6H/d9/J/zlngf///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8Bt4ZaA76PaA+3gVNNrmQmlbxqHc3Ebhbn0HcV9diB
|
||||
FfnijBf96JQZ/+2eG//wpRz986se+/WuIPf0siXr9bUs1fCzN53uulxb9spkE/nSbgP///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AbV/UAO6imYJtH5YK7Ju
|
||||
O0+9djqFw3gxqct7KMnMeB3V0Xwb1dmOK8vdlDWv3phAj96fUFnfpFoz4rF9C+m4bQP///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAwAAAAYAAAAAEA
|
||||
IAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAAAAD///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////AZxyVDeMXkOTfUYn0XA0Cu9rMAXzcDgb24ZWQKWohXBNwqubB///
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8Bs490QYhPKMVyKgD/dzAA/4E9A/9+PAL/bisA/1sV
|
||||
AP9tNR3fqYt4X9PDtwn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wHKrJctnmhAvYY5AP+ZTQb/qV8R/6lf
|
||||
EP+hWA3/llAK/387A/9bFwD/dD8l4byjkknZzMED////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AcyslgW4imV7m04N+a1Z
|
||||
Bv/Hex3/0YMf/9SFHv/JfBn/tGcR/59YC/96NQL/WxYA/5NpUp3JtqkZ////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Acie
|
||||
gBG0d0SlsV4K/89/Hv/lmjH/76U1//OoNP/rnir/1IYc/7ZpFP+UTAf/ZyAA/4FPM8WukHwv////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////AcSSaxm7eD2xw3MZ/+GYMv/1s0f//b5P///ATP/9tz7/658r/8t8HP+jWg3/dCwA/39J
|
||||
J8+gfGI7////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Ac+lgRfEh0uryn0f/+imQP/7xFv//8xk///MYP//wlD/8qo3/9WI
|
||||
I/+rYBD/eTAA/4JOKcuigGY1////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////AeHHrAfRoG2Ly38m/eelP//9y2X//9Nt///P
|
||||
aP/8wlb/76k8/9aKKP+mWQz/eC8A/4xaN62vjngh////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wHatpNFzY1E2dyV
|
||||
MP/2v1r//s5p//7KYv/2u1L/56A7/8l+Iv+QQAD/fTsP87KQeWm+oY4J////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wHpzLIJ3bKFb9KRP+ffnDj/7rBK/+6wSv/koDz/z4Qn/6hbCf+HPwn3qoFokdrJvBv///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B68elC9amcmPQkUbN0ow09dKKMf/HfSf/sWYa+5hVF9+meFOB0r2wG///
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////AeCzhQPZsIM10Jxma8WKSpPAh0+ZuYVbeaJt
|
||||
QUe5l30L////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8Bxb+5C5R6YDWLdFcd////Af///wH///8B////AciU
|
||||
YBPFl28XyqSHBf///wH///8B////Ab+abg+neEE1uJh3Ff///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wHY3+MJvpt+daxjJs+udzmfnoxwJf//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8Bqo1rDcWWT3/GhyDRwJJSl8CrmB3///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AdDS0hG6nIhvt2EX6dNl
|
||||
AP/Yegn7wIc8raeFV0eOdlUR////Af///wH///8B////AZeAaQmnh2AzwJRSjeioKe31uhT/46AU+72S
|
||||
VZvNvrMj////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BxLWnCbiY
|
||||
fWusWR3nxl8A/9x/Ef/egQ7/4IIH/9OHHNu5hTiZrYxZYcigXknPoVNFtpRgV7iMTIXVmC/J8K0h9/69
|
||||
If//yyv//ccd/9aUCPnOqXOL3carFf///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8BvI1hE7l2NqW/WgD/0nAK/9WAGv/XgBX/4YYP/+qLCf/skgv76JYV6eWdIt3noSfd66Ig4/Op
|
||||
HfX8sxz//rsg//u8Jf/6viz//84x//m5A//svFHB4MaeJ////wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B3rGAB9ehZ2fLdRrpymUA/9R5Dv/YgRf/24YY/+CKFv/okBL/8JYP//Gb
|
||||
D//0oRP/+qgV//uwGf/5tCD/97Ym//i5Kv/7vib//cAd///CGv//4IKF8eK+E////wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////AebHow/aqHRxy3Ya49BuAP/XeAX/3IQT/9+L
|
||||
Gv/gjhv/45Eb/+iWGf/tnBr/76Id//GoH//0sCP/+bYl//q5Hv/8uhP//MAq+f3ERJf/558h////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wGhioILgm9sQYJsZiX///8B////Af///wHkyqwN2adrV9OH
|
||||
Lr3WexD/2XsG/+CCB//ljA//55MU/+qYGP/unRr/8qUZ//isF//5rRH/+K0N//i2Hf/5wj3V/M1pe/3G
|
||||
Wxv///8B////Af///wG1n5YXhFlCRayYihX///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////AZJtXQWbdWVzikkj3ZNgQamHfXkp////Af//
|
||||
/wH///8B3LKAA9miXS3bnFJ/2IswxdqDF+vgixf/55MU/+qRA//tlQH/8qIT//OoHf/yqSP18rAz1fbA
|
||||
UZX60X5B/NKHDf///wH///8B////AZ2HhwuxjWSNrHsk3a2LW5OwoJwX////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Bo5iSD41gS3GbUiTpq0UA/65U
|
||||
DPuSXzutemhiNf///wH///8B////Af///wHdpWMN2p5cL9OYV2HSjTqT2I4ur+KfRb3lpku935g0tdyV
|
||||
M5/jql1v7sJ7P/XIbhX///8B////Af///wH///8BelZNGZx3VovUqTXv8c8u/9SnKPWsh1mVs56WI///
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wHBu7cFpIt7Y4xC
|
||||
EO2mSAL/uFsJ/7pdB/+xVwn7nV8sx3leUF2LbVIH////Af///wH///8B////AdmhaAfRjkET0409HeG5
|
||||
myXjxLQn1ZRSH9qNMhfosG0J////Af///wH///8B////Af///wGBXVA/oXVHqdSnNfP50TX//+ZC//ra
|
||||
Nv/SoyL1waN0icCpjRP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wHHvbcJt4Zhl5U3AP+tUgX/tF4Q/7hhDf/BYwr/v2EI/6piHeORXiqTdl1FP////wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BgmRSKZt4XHe3jEzR47Q3/fzU
|
||||
Nv//2jz//9hB///iR//61Cz/6cpqxeXGfSH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wHjzboDzaSBXaJPDummSQD/tF0N/7dhEP+9ZQ7/w2gM/8ZpCv+/aQ35sXAk0654
|
||||
MZOncipflHBAMYF8ewn///8B////Af///wH///8B////Af///wH///8BkGQwI6BwQVOohWV/uZJbwdmo
|
||||
Re/0wTb//9Ax///VNv//1z3//9lD///aPP//2Df//uSLe/3sqA////8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B1bWZDbmCU2mtXxznq04A/7dfC/+7ZRH/vmYQ/8Jo
|
||||
EP/Kaw7/0HMO/9J8EfnPghfpyIcjx7+NOqO9iziHwJJDcdWkTGXbo0NjyJlKbbqSUYG9lFKZxplSu9Sn
|
||||
WOPntVL19r49//3FK///yin//80w///RNv//1j3//9o4//7aSf392WeD/+eoFf///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////AaqakgWQgH03koJ8Jf///wH///8B////AcOZdQnJmXBftGkm2a1T
|
||||
AP+4Xgf/v2YR/8FoEv/EaBH/ymwR/9J1Ef/bgBL/44kQ/+mSEPvomRX36p8c8e2nJO3vrCrt7a4y7++y
|
||||
OPXztz379rtB//u/OP//wCn//8Eg///BJP//xSz//8sx///TMv/+0jH//NVI6/3aaHf923cT////Af//
|
||||
/wH///8BjGI/D4ldQ0PGsaUH////Af///wH///8BtaiiB6WMgG9zMyDZh1VHrZ2QiTH///8B////Af//
|
||||
/wHUspMH0quFPbt9RKmsVQT/tlcA/8BjCf/FahH/ym4V/8xwFf/RdxP/2X8T/+CHFf/nkhb/7ZgW//Cc
|
||||
F//yoxv/9aog//ivJf/5siT/+rMh//u0Hf/8tx7//bwj///BJv//xyX//80p//vKLv/2ykzD+NBpWfvZ
|
||||
cA3///8B////Af///wGCWkITmWsvlbOCKdOuh1mTyLWqD////wH///8Bp4+GbXc0F+19KQD/hjgM+4JS
|
||||
O7VyW1Uz////Af///wH///8B////AcGPYB+1eEB5uXY117hhD//BYgb/yWoJ/9FzD//XfBb/2IEZ/9uF
|
||||
GP/gihj/448Z/+eVGv/rmxv/7qAb//GkHP/zqh7/97Ah//y4Iv//vSD//8Aa///EHv/9xCP/8rgu7e26
|
||||
W5PwxnYz9s9yB////wH///8B////AaWLhBWZbTmZ1aw39e/aSP/SpzL3roVYl9K+txH///8BgEco73Yo
|
||||
AP+IQAb/i0AE/4Y5Bft7Px7HfmpjT////wH///8B////Af///wG7iFkNwI9fObh3Pn+3bizJu2YT+8hr
|
||||
CP/ScgT/2nwJ/+GIDf/nkBL/7JcW/+6eG//xoxr/9qoa//iuGf/5sRj//LQU//+4F//8uh7/9bMi/+in
|
||||
Ld3krVmV4qdQT+m1ZxP///8B////Af///wH///8BnH1yNah9Q6vbsjv1++BS///oXP/74VL/1agy98io
|
||||
fXv///8Bdi4A/382A/+JQgn/jEMI/5RFB/+SQQX/hUUb3YBnXHmJeG8P////Af///wH///8B////Abd+
|
||||
TA+0d0Uvs3REX7h3RZ++czDRyHgg7dJ9GP/bhxv/4YwX/+GIBP/ljgj/7J8d/+6kIP/soyD/6qEm8+Wb
|
||||
LdvdlTWz0ZNbc9CTVj3ao3QV5KlXA////wH///8B////Af///wGNZk5Zrn82xd69Ovn841X//+Rc//7d
|
||||
Wf//5F7//NtF/+vMeLP///8Bh0wm528jAP+GPwX/jUQK/5JGCv+ZTAj/mUYC/4xCDe+AUDWjdmRiQ3Rd
|
||||
UQP///8B////Af///wH///8BtnlQB7V+XRu2ek8xuYBZUbd2S3O6ai6Pv3Eunc+RV6XVk1GnzXopoc19
|
||||
MJXNgkN/yohnW86MWznPhkEjyoxlC////wH///8B////Af///wH///8BhGFUL5NmN4+5iyzf5sk+/fzm
|
||||
Vv//41r//t9b///fX//+3FL//91W+f7nmmX///8BvJ+FWYI/FNt4KgD/iUEG/5FIDf+WSgv/nlAL/6JP
|
||||
B/+eSwj5kU8e23dJLZdhSkM7////Af///wH///8B////Af///wH///8BuYJoBbNzWA2xXi4VtWg2Gcya
|
||||
fx3SmnMdwnAuG8JvMRfFdUwPx4NyB////wH///8B////Af///wH///8B////AXdcVimCWDl9qXkrydqx
|
||||
MvX02EX//udT///iV///31r//+Fe//7eUf/+3WLx/9t0c//qpBH///8B0sGuBcCdg0+QVinVfTEA/41B
|
||||
Bf+XTg7/nE8M/6NUDf+rWAv/rFcJ/6NRCveTUBzVg1g6l3pfTlN5d34T////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AZd+bweDZVU/jGVHg6R0
|
||||
NMfKnCfx7Mk0//zfR///41L//+BS///fV///4Fr//t1N//7dWuv+4ohn/9yAEf///wH///8B////Ac6z
|
||||
nQW2jm09l1sss4k+BP+RQQH/nVAO/6JUDv+pWQ3/rl4N/7NfDf+zXA3/rloP96thGt+nbTK7nXE9l5Zp
|
||||
NG+Qbkk/ioF+F////wH///8B////Af///wH///8B////Af///wH///8Bl4Z8C5ZySDGZazdfoHVEi6+I
|
||||
T6/Dkz7V1aIr8eq8Kv361DT//95C///eS///3k7//99W///eUv/+20X//t5pyf7hh1P+45YN////Af//
|
||||
/wH///8B////Af///wG5lHUDsYdiI7CAV4uRRQn1kz8A/6JUDP+pWg//rl0O/7FfD/+1YA//umEO/79j
|
||||
Dv/EaA79x3IS98l6Fu3IgR3XxogpwcSLL6/JjzKd0JY0j7Z9GoerdBGFyZEtjdCYN5nGlkOpx5ZBucyZ
|
||||
O83Wojnl4Kwz9e21LPv3wCj//Mgp///RMP//1zz//9pE///eS///3lH//9tF//7bSv/+3m+l/uWeNf7i
|
||||
lwf///8B////Af///wH///8B////Af///wH///8B////AcepjhG6j2lRpGUvw5pGAf+kUQX/r14P/7Jf
|
||||
D/+0YA//t2ER/7xjEf/EZxD/ym0R/9B0Ev/YfRH/3ocR/eKPE/3plxX57Z4X9e6iF/PupRrz8ash9fGu
|
||||
JvfxsCf79LIn/fe2J//7uib//r4l///BJP//xCX//8or///PM///1j3//9tF///bRP/+2T3//dxe1/3f
|
||||
eWv+4Iob/uajA////wH///8B////Af///wH///8B////Af///wH///8B////Af///wG+mXYFvZVuH7uK
|
||||
YGulXSDfo08A/7FdCf+3Yg//uWIP/7xkEf/BZxL/x2wT/85yFP/TeBX/2H8W/92GFv/jjRb/55IY/+uY
|
||||
Gv/wnxr/8qMa//SpHP/2rh//+LEf//q1IP/8uSL//bsk//6+JP//wib//8gs///QNP//1jj//9c4//7W
|
||||
R+/+3nmB/eelK/3jjQn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////AcGWcAW2gVMntH9OfaljJN+uWwr/uWEK/75iDP/DZg7/x20S/85zFP/VeRX/134W/9uE
|
||||
F//hixj/5ZEZ/+iXGf/tnRv/8KId//KnHv/0rB7/97Af//q0Iv/9uiH//rwh//+/Iv//xCX//sop//7O
|
||||
L//5z0Xr+NJpk/zXWS/+4IQL////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8Bt4ZaB7+Rah3Dl29VrW04qa5eG+e6ZBL7xWwP/85y
|
||||
Df/Vdw//2H4S/92GFP/jjRb/6JIX/+yaGv/voBz/8aQb//OpG//2rhz/+bEc//u2Hv/8ux3//Lse//u6
|
||||
I/3ztCvt7bREufDBcWn2ymMl+dJvC////wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wHDl28Dr3NBCbyO
|
||||
bB+8kHJZrGo6m7RoKcfBbyLfy3gd6dSAGvPbhxr54I0b/eSRG//olxv/6p0e/eyiIPntpCLz7aQl6+qh
|
||||
KuPjnjjR4J5IqeCoYW/isYEr57VoDe2/dgX///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wG9j24FsHpVDbaGciG1gGZJtXhRcblzQpG/cjapwXIsu71lGcO/YxTDyXcpvdCH
|
||||
Oq/Rh0GZ0YpSe86PY1fUoogt3qqBEeKpZwf///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
|
||||
/wEAAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA
|
||||
AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA
|
||||
//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA
|
||||
AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA
|
||||
//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA
|
||||
AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA
|
||||
//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
82
TomcatServer/RegistrationAPI_Tester/Program.cs
Normal file
82
TomcatServer/RegistrationAPI_Tester/Program.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using System.Reflection;
|
||||
|
||||
namespace RegistrationAPI_Tester
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
// Make sure all embedded Assemblies get loaded
|
||||
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
|
||||
|
||||
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
|
||||
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
|
||||
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new MainForm());
|
||||
}
|
||||
|
||||
#region Application Multi-File Assembly Handling
|
||||
|
||||
/// <summary>
|
||||
/// A way to embed multiple dlls into one exe:
|
||||
/// http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx
|
||||
/// </summary>
|
||||
/// <returns>a loaded assembly if found, null otherwise</returns>
|
||||
static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
|
||||
{
|
||||
string curAssemblyName = Assembly.GetExecutingAssembly().FullName.Split(',')[0];
|
||||
String resourceName = curAssemblyName + ".Components." + new AssemblyName(args.Name).Name + ".dll";
|
||||
|
||||
//string[] resources = AssemblyW.SpecializedAssemblyInfo.GetAssemblyResourceNames(AssemblyW.AssemblyST.Entry);
|
||||
var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
|
||||
if (stream != null)
|
||||
{
|
||||
using (stream)
|
||||
{
|
||||
Byte[] assemblyData = new Byte[stream.Length];
|
||||
stream.Read(assemblyData, 0, assemblyData.Length);
|
||||
return Assembly.Load(assemblyData);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Global Error Handlers
|
||||
|
||||
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
||||
{
|
||||
Exception ex = (Exception)e.ExceptionObject;
|
||||
String msg = "UnhandledException Occured: " + ex.Message + "\n\n" + ex.InnerException.Message;
|
||||
MessageBox.Show(msg,
|
||||
"Error",
|
||||
MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Error,
|
||||
MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
|
||||
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
|
||||
{
|
||||
Exception ex = e.Exception;
|
||||
String msg = "Thread Exception Occured: " + ex.Message + "\n\n" + ex.InnerException.Message;
|
||||
MessageBox.Show(msg,
|
||||
"Error",
|
||||
MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Error,
|
||||
MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("RegistrationAPI_Tester")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("RegistrationAPI_Tester")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2012")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("b59aa1c6-c350-4ed9-a9f4-4bc74e4448ab")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
71
TomcatServer/RegistrationAPI_Tester/Properties/Resources.Designer.cs
generated
Normal file
71
TomcatServer/RegistrationAPI_Tester/Properties/Resources.Designer.cs
generated
Normal file
@@ -0,0 +1,71 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.269
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace RegistrationAPI_Tester.Properties
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources
|
||||
{
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((resourceMan == null))
|
||||
{
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RegistrationAPI_Tester.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
return resourceCulture;
|
||||
}
|
||||
set
|
||||
{
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
117
TomcatServer/RegistrationAPI_Tester/Properties/Resources.resx
Normal file
117
TomcatServer/RegistrationAPI_Tester/Properties/Resources.resx
Normal file
@@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
30
TomcatServer/RegistrationAPI_Tester/Properties/Settings.Designer.cs
generated
Normal file
30
TomcatServer/RegistrationAPI_Tester/Properties/Settings.Designer.cs
generated
Normal file
@@ -0,0 +1,30 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.269
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace RegistrationAPI_Tester.Properties
|
||||
{
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
||||
{
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default
|
||||
{
|
||||
get
|
||||
{
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{9C4B41FD-6889-4561-8236-C7F5F39529A1}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>RegistrationAPI_Tester</RootNamespace>
|
||||
<AssemblyName>RegistrationAPI_Tester</AssemblyName>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\Target\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\Target\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>WiFi.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.configuration" />
|
||||
<Reference Include="System.Configuration.Install" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
<Reference Include="Yaulw, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\3rdParty\Sdaleo\Yaulw.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\PlutoServer.MSL\Configuration.cs">
|
||||
<Link>Configuration.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.Designer.cs">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Pluto.MSL.Api\Pluto.MSL.Api.csproj">
|
||||
<Project>{B794609D-A93E-41E3-9291-84FC73412347}</Project>
|
||||
<Name>Pluto.MSL.Api</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\RegistrationAPI\RegistrationAPI.csproj">
|
||||
<Project>{D8974253-F538-4AA6-B567-48B7CD574888}</Project>
|
||||
<Name>RegistrationAPI</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="WiFi.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>copy /y "$(TargetPath)" "$(TargetDir)DiagnoseMobile.exe"</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectView>ShowAllFiles</ProjectView>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
BIN
TomcatServer/RegistrationAPI_Tester/WiFi.ico
Normal file
BIN
TomcatServer/RegistrationAPI_Tester/WiFi.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\bin\Debug\RegistrationAPI_Tester.exe
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\bin\Debug\RegistrationAPI_Tester.pdb
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\obj\x86\Debug\ResolveAssemblyReference.cache
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\obj\x86\Debug\RegistrationAPI_Tester.MainForm.resources
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\obj\x86\Debug\RegistrationAPI_Tester.Properties.Resources.resources
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\obj\x86\Debug\ResGen.read.1.tlog
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\obj\x86\Debug\ResGen.write.1.tlog
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\obj\x86\Debug\RegistrationAPI_Tester.exe
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\obj\x86\Debug\RegistrationAPI_Tester.pdb
|
||||
C:\Users\Administrator\Projects\Pluto\Server\Target\Debug\RegistrationAPI_Tester.exe
|
||||
C:\Users\Administrator\Projects\Pluto\Server\Target\Debug\RegistrationAPI_Tester.pdb
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
C:\Users\Administrator\Projects\Pluto\Server\Target\Release\RegistrationAPI_Tester.exe
|
||||
C:\Users\Administrator\Projects\Pluto\Server\Target\Release\RegistrationAPI_Tester.pdb
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\obj\x86\Release\ResolveAssemblyReference.cache
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\obj\x86\Release\RegistrationAPI_Tester.MainForm.resources
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\obj\x86\Release\RegistrationAPI_Tester.Properties.Resources.resources
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\obj\x86\Release\ResGen.read.1.tlog
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\obj\x86\Release\ResGen.write.1.tlog
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\obj\x86\Release\RegistrationAPI_Tester.exe
|
||||
C:\Users\Administrator\Projects\Pluto\Server\RegistrationAPI_Tester\obj\x86\Release\RegistrationAPI_Tester.pdb
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user