diff --git a/EliteReporter/Assets/reward_eng.bmp b/EliteReporter/Assets/reward_eng.bmp
new file mode 100644
index 0000000..cbaf54d
Binary files /dev/null and b/EliteReporter/Assets/reward_eng.bmp differ
diff --git a/EliteReporter/Assets/reward_rus.bmp b/EliteReporter/Assets/reward_rus.bmp
new file mode 100644
index 0000000..10664d2
Binary files /dev/null and b/EliteReporter/Assets/reward_rus.bmp differ
diff --git a/EliteReporter/EliteReporter.csproj b/EliteReporter/EliteReporter.csproj
index 8f65587..08ecaed 100644
--- a/EliteReporter/EliteReporter.csproj
+++ b/EliteReporter/EliteReporter.csproj
@@ -185,6 +185,12 @@
ConfirmationCodeForm.cs
+
+ Form
+
+
+ EditMissionForm.cs
+
Form
@@ -221,6 +227,9 @@
ConfirmationCodeForm.cs
+
+ EditMissionForm.cs
+
LoginForm.cs
@@ -311,6 +320,12 @@
Always
+
+ Always
+
+
+ Always
+
diff --git a/EliteReporter/Forms/ConfirmationCodeForm.Designer.cs b/EliteReporter/Forms/ConfirmationCodeForm.Designer.cs
index 2fe8bc6..0e178e8 100644
--- a/EliteReporter/Forms/ConfirmationCodeForm.Designer.cs
+++ b/EliteReporter/Forms/ConfirmationCodeForm.Designer.cs
@@ -28,6 +28,7 @@ protected override void Dispose(bool disposing)
///
private void InitializeComponent()
{
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfirmationCodeForm));
this.okButton = new System.Windows.Forms.Button();
this.codeTextBox = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
@@ -70,6 +71,7 @@ private void InitializeComponent()
this.Controls.Add(this.codeTextBox);
this.Controls.Add(this.okButton);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "ConfirmationCodeForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Enter confirmation code";
diff --git a/EliteReporter/Forms/ConfirmationCodeForm.resx b/EliteReporter/Forms/ConfirmationCodeForm.resx
index 1af7de1..a77968a 100644
--- a/EliteReporter/Forms/ConfirmationCodeForm.resx
+++ b/EliteReporter/Forms/ConfirmationCodeForm.resx
@@ -117,4 +117,81 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAANgOAADYDgAAAAAAAAAA
+ AAA6T17/Ik53/xBQkP8QV5v/D1mh/wtZpv8NWaX/Flyf/xdhl/8BW6j/EmCl/wlXnv8MWaL/GGCm/wVS
+ qf8UWq7/C1yt/xZNtf8bWqT/B2Kl/xJYrP8UVaD/AVyf/xlinP8WXJ//DVml/wtZpv8PWaH/EFeb/xBQ
+ kP8iTnf/Ok9e/yVRev8RUZL/A1as/wRctv8IYbz/A2HE/wRixf8MZcD/E13H/wBVz/8QX83/CWHL/wBg
+ yP8AXr7/AWrL/whfr/8CaKn/AGjM/wBmvf8AYrz/AFzG/xJqz/8AX8f/Bl2//wxlwP8EYsX/A2HE/whh
+ vP8EXLb/A1as/xFRkv8lUXr/ElKS/wJVq/8AXML/AGTK/wNq0f8Aa9r/AGze/wFt2f8AcNT/AGrY/wBs
+ y/8Eb9D/BnLX/wltzf8bbsT/AB5L/wAZTP8Wa87/EW3U/w5m0v8Eatr/CG/W/wBi0v8Acdz/AW3Z/wBs
+ 3v8Aa9r/A2rR/wBkyv8AXML/AlWr/xJSkv8PVpr/Alq0/wBjyf8HbM//C3HU/wVy3v8AcuT/A3Lg/wJy
+ 3P8Idub/EXbZ/wVx3f8AbeD/AHHm/xp22/8AIEb/ABw//wp11/8Ac+X/DHbp/wNv2/8Ab8//Cn/o/wRz
+ 2/8DcuD/AHLk/wVy3v8LcdT/B2zP/wBjyf8CWrT/D1aa/xBaov8HYLv/A2rR/w1z1v8QeNv/Cnnn/wV4
+ 6/8Hd+f/CnPs/w118P8Td+f/CX30/wB08P8Advb/AG/Z/wYvSP8AIzn/B3nd/wB59v8Ac+//FoD2/wZ1
+ 4f8AeO7/Enbs/wd35/8FeOv/Cnnn/xB42/8Nc9b/A2rR/wdgu/8QWqL/DFqn/wNhxP8Aa9r/B3Tg/wp5
+ 5/8Fe/L/Anv2/wV78v8AfvD/AHvu/wF65/8IhPD/DILp/wx/7f8AU6n/AAIA/wUAAP8BRZ7/EX3z/xJ/
+ 8/8Ue+//CHnt/wB49/8He/L/BXvy/wJ79v8Fe/L/Cnnn/wd04P8Aa9r/A2HE/wxap/8OWqb/A2HE/wBr
+ 3f8AcuT/BHfq/wF69f8Bevj/BXvy/wh58v8He/j/Cnz4/wZ58v8MduH/DXru/wdewP8AAAH/AAMA/wNc
+ rf8Ieef/AnXe/wSC7v8IgfX/AHLw/wSE7/8Fe/L/AXr4/wF69f8Ed+r/AHLk/wBr3f8DYcT/Dlqm/xdd
+ oP8LZL//AW3Z/wRz4f8Hd+f/BHrx/wZ88/8Le+3/D4Du/wF37v8Aevb/AH34/wZ96v8AfPn/B3js/wEe
+ M/8AESz/EH3p/wp5/f8NevT/AH31/wN29f8Udfv/AH3m/wt77f8GfPP/BHrx/wd35/8Ec+H/AW3Z/wtk
+ v/8XXaD/D1yh/whjxv8DbNX/BnXb/wBz7P8Ff/v/AHfo/wl67v8KdP3/AHP0/wxgov8ADy3/DBkn/wAc
+ Jf8ARH7/CE+w/wBOm/8FSZb/ABkn/w4gIf8AFin/BVij/wBy//8Le/f/AHjw/wSC7v8Ae+//CXzr/wx9
+ 3v8AatP/BWDD/w9cof8JWKn/DG3E/wJmzP8JceL/AHnr/wB68v8NffX/Cn3r/wF/6/8ZftT/Ak+Y/xFI
+ jf8APZ7/ETJf/woMDP8DbOv/AWzl/w8PFf8OMlj/ADma/xRKkf8FU5j/GXrb/wB95v8JeOz/DnXw/xBu
+ zf8AZ9D/Amjf/wdp1f8AYc3/F1ms/xFcq/8AXrj/AGvf/w967f8Qe93/CHzz/wBy//8Ad/T/AEuJ/wMP
+ If8ABSL/CxYe/wUdNf8ACi7/CgIA/wBFf/8ARIf/CwQA/wAPIf8AEzf/DBMn/wARHv8ADhv/AEaK/xCA
+ 8v8AXuD/AD17/wBRlf8NduX/CHHe/wBcyP8dXKD/C1aa/w9myP8AaeD/AHHf/xFy2v8Rgfn/D3zm/wZA
+ gf8HAQD/DgAB/wsDDv8ABgD/AAIB/wIAA/8SAQD/AAcI/wADD/8RAwD/AQUA/wAACv8AAAf/CgsC/w4A
+ AP8HAAD/EEN1/wtxyv8ASY7/CFad/wNx0P8AZs7/A2fR/xVclf8aYqL/Dl+6/xB33v8AceP/AHb+/wlz
+ 5v8AMGH/AAEA/wABBv8ABBL/BAEA/wcHAP8BAwD/CAAA/wUABv8WBQL/EgMB/wUAC/8JBAD/AwMD/wUC
+ AP8EBgD/AAcY/wAEB/8AAAH/ADNm/w9u3P8Db/L/Am7d/xp54P8EVrv/FF+t/wpXrf8AYsD/AmPE/w5y
+ 3P8HdNb/ADJf/wYGAP8DCQD/AQUK/wICAP8BBAj/CAAE/wwAAf8CAQD/AAIA/wAAD/8AAAr/AAAH/wAB
+ AP8NAQH/BQAD/wADBP8AAAP/AAYD/wEIA/8JCwv/AC5m/wlz2P8Zdtn/EWvJ/wBivv8AUrL/ClOj/wFl
+ w/8GcuH/AnPo/wB15v8AaM3/EmfK/wBiyP8SFin/AAEJ/wAAC/8KAAb/AAAG/wAGA/8QLTH/AGLO/wBn
+ y/8KJDL/AAgA/wAABv8GAAL/AAAL/wAAEv8PFSL/AGDC/wpozP8AYMD/AHjo/wBx5P8FcNL/AWvD/xFc
+ of8MXa7/D1+8/wBmzf8NfeH/C3Th/wBz+P8SfuT/AB07/wAAB/8OBAD/AAMC/wADAP8IIjD/AESX/wZI
+ mf8OID3/ECc9/wA/lP8ATpv/CSIy/wACAP8ACgT/DAAA/wAAB/8EIUD/Bnfs/xR/+P8Lc+r/AHHl/wxw
+ 1v8AV8P/GF6h/wpfqf8GXsP/AGfM/wp34f8Aee3/CXDN/wAZPv8DAgD/GwgA/wABB/8QBwD/AwEH/wBe
+ uP8AeOX/Djtn/wAADv8AABP/Dz9p/wJ95f8AU7X/AwAJ/xUKAP8AAQf/FgAE/wIDAP8AGj//CnDQ/wJ4
+ 7/8MdeL/AmfO/wxexP8OYKj/B1ic/whhyf8DbeD/AH3k/wBx4f8QJUv/BQAB/wAEAP8FAAD/CREH/wAA
+ Bv8NAAL/ABlE/xGD5/8AbM7/FA8Y/xMTGf8AbdX/Cnrk/wAfRv8MAAD/AAAK/wUJCv8FAAD/AAUA/wQA
+ Af8PJU7/AHDi/wB85f8Ha+H/DGHJ/wpXnP8RWa3/AGXC/wRv2P8AbtH/AnPs/wYACf8FBAD/DQoA/wEI
+ Af8AAQr/BAEA/wQAAP8ACCb/AGri/wOA6f8AEC//ABMt/wF86v8AbOn/AAUc/wcDAP8FAAD/AQER/wAI
+ AP8LCgD/BQQA/wcAC/8Ccu7/AGzR/wVu1/8AZMH/FFes/xJZsP8AYrv/AXDS/wx34P8Sa9P/AAAI/wAF
+ Dv8EAAD/AAMA/w0AAv8EAAb/Ahwj/xNuyf8RefL/C3Dc/wZTkf8DUpH/DHbb/xJ87f8Wbc3/ABUh/wQA
+ Af8OAAD/AAIB/wIAAP8ABQ7/AAAJ/xJq1P8MdeL/Am7T/wBhuv8SWKz/Cl6g/w1hwf8Ba9z/E3Xb/wk5
+ Y/8AAgD/AAAK/wAAB/8AAQD/CwUK/wQZP/8Ic9T/AH3c/wBx9P8bc+n/AFKo/wBVrv8YdeL/AHDt/wiC
+ 5v8Kctf/ARY1/wQAAP8BAgD/AAAH/wAACv8AAgD/CThk/xN03P8Aat3/DGDA/whcnv8GXKj/DWHB/wRp
+ zP8CMW7/BAUB/wAGAP8PBgP/DgAA/wUACf8AJkf/EXrp/wB18/8Af/T/DoHv/wh0+/8Ha9X/B3DR/wNw
+ +v8Rg/X/AH7t/wB78/8LcOT/ACNG/wQCAf8MAQD/DgUC/wAFAP8DBQX/ATJw/wRpzP8KYMD/BVym/wpT
+ rv8AYrr/B2a2/wAABP8MAAD/AAID/wMGAP8GAAX/AChX/xZ95P8AePT/AHz8/wR77v8AePL/EX3t/wd4
+ 8f8Adun/FID2/wB09f8Ifu3/AHXx/wF7/f8Ve+X/AChO/wQABP8CBQD/AAEE/wsAAP8AAAb/BWW4/wBi
+ uv8IVK7/G1io/wZowP8AVLH/BQUA/wABDP8NAAX/AAMA/wIza/8Jgev/BXf6/wJ68v8Lgun/BXn1/wt1
+ 8P8NgO//AXzy/wB79f8Jf+n/C3bv/wZ1+f8PgvH/AXjs/wR49P8JgO3/ADFp/wADAP8KAAT/AAIP/wUF
+ AP8AVLP/BWnB/xlYqP8HW6f/FGfD/xFKh/8AAAj/CAUA/wQEBP8CPWv/AH3//wN78v8De/L/A3vy/wN7
+ 8v8De/L/A3vy/wN78v8De/L/A3vy/wN78v8De/L/A3vy/wN78v8De/L/A3vy/wN78v8Aff7/Bz9w/wID
+ Af8GBAD/AAAK/xRLiP8RZ7v/CFyo/w9Xpf8AQob/AAAd/wAIAv8IAAr/AEeK/wl39f8KfOf/BXzw/wV8
+ 8P8FfPD/BXzw/wV88P8FfPD/BXzw/wV88P8FfPD/BXzw/wV88P8FfPD/BXzw/wV88P8FfPD/BXzw/wh4
+ 6P8FeOv/AESI/wEADf8ACwD/AAMc/wBBjv8OW6D/FU2O/wAFE/8ABAD/DAIO/wBRjf8Tefr/AHj0/wd/
+ 9v8He/D/B3vw/wd78P8He/D/B3vw/wd78P8He/D/B3vw/wd78P8He/D/B3vw/wd78P8He/D/B3vw/wd7
+ 8P8He/D/CYT4/wBy8f8Me/n/A1OO/wEACv8AAwD/AAoS/xJIif8TLUv/AQAC/w4KBf8AW5//E23p/wp9
+ 5f8BeOv/AXLn/wR57P8Eeez/BHns/wR57P8Eeez/BHns/wR57P8Eeez/BHns/wR57P8Eeez/BHns/wR5
+ 7P8Eeez/BHns/wR57P8Hd+f/AHbw/xF94v8Lc+T/AFSg/wUJA/8EAgD/DChH/wggRP8ACBL/Ak2X/wJk
+ 1P8Fet3/AGvf/wd35/8Hctv/AHPi/wBz4v8Ac+L/AHPi/wBz4v8Ac+L/AHPi/wBz4v8Ac+L/AHPi/wBz
+ 4v8Ac+L/AHPi/wBz4v8Ac+L/AHPi/wJu2v8NeuP/AGvd/wtz3v8AatD/Ck6X/wAFFf8LI0H/Citc/wBB
+ iv8PYr3/AFzK/wBu0f8GbtH/AGPe/why1/8EbdT/BG3U/wRt1P8EbdT/BG3U/wRt1P8EbdT/BG3U/wRt
+ 1P8EbdT/BG3U/wRt1P8EbdT/BG3U/wRt1P8EbdT/B2/U/wBo4P8Ja8//AGrO/wZfzf8JZb7/ADuI/wou
+ Xv8aTXX/IFGb/wRXrf8AZrH/Dlq+/wJgv/8IabP/AFvI/wpjvv8KY77/CmO+/wpjvv8KY77/CmO+/wpj
+ vv8KY77/CmO+/wpjvv8KY77/CmO+/wpjvv8KY77/CmO+/wpjvv8CX8b/Dmi9/wBivv8QW7f/AGW4/wdV
+ r/8bU5T/Gkh3/09WWf8SS3j/CVCU/xFQmv8JXqT/EFie/xtcp/8MWqb/Dliq/w5Yqv8OWKr/Dliq/w5Y
+ qv8OWKr/Dliq/w5Yqv8OWKr/Dliq/w5Yqv8OWKr/Dliq/w5Yqv8OWKr/Dliq/w9cq/8WW6H/EFig/wtg
+ qv8QTpT/CVCU/xZNgP9LVVX/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
\ No newline at end of file
diff --git a/EliteReporter/Forms/EditMissionForm.Designer.cs b/EliteReporter/Forms/EditMissionForm.Designer.cs
new file mode 100644
index 0000000..4e22703
--- /dev/null
+++ b/EliteReporter/Forms/EditMissionForm.Designer.cs
@@ -0,0 +1,299 @@
+namespace EliteReporter.Forms
+{
+ partial class EditMissionForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditMissionForm));
+ this.missionNameTextBox = new System.Windows.Forms.TextBox();
+ this.dateTakenTextBox = new System.Windows.Forms.TextBox();
+ this.systemFinishTextBox = new System.Windows.Forms.TextBox();
+ this.rewardTextBox = new System.Windows.Forms.TextBox();
+ this.systemTakenTextBox = new System.Windows.Forms.TextBox();
+ this.dateFinishTextBox = new System.Windows.Forms.TextBox();
+ this.changeButton = new System.Windows.Forms.Button();
+ this.closeButton = new System.Windows.Forms.Button();
+ this.label1 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.stationTakenTextBox = new System.Windows.Forms.TextBox();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label4 = new System.Windows.Forms.Label();
+ this.stationFinishTextBox = new System.Windows.Forms.TextBox();
+ this.label5 = new System.Windows.Forms.Label();
+ this.label6 = new System.Windows.Forms.Label();
+ this.label7 = new System.Windows.Forms.Label();
+ this.label8 = new System.Windows.Forms.Label();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.groupBox2 = new System.Windows.Forms.GroupBox();
+ this.groupBox1.SuspendLayout();
+ this.groupBox2.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // missionNameTextBox
+ //
+ this.missionNameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.missionNameTextBox.Location = new System.Drawing.Point(12, 33);
+ this.missionNameTextBox.Name = "missionNameTextBox";
+ this.missionNameTextBox.Size = new System.Drawing.Size(434, 20);
+ this.missionNameTextBox.TabIndex = 0;
+ //
+ // dateTakenTextBox
+ //
+ this.dateTakenTextBox.Anchor = System.Windows.Forms.AnchorStyles.Right;
+ this.dateTakenTextBox.Location = new System.Drawing.Point(322, 34);
+ this.dateTakenTextBox.Name = "dateTakenTextBox";
+ this.dateTakenTextBox.Size = new System.Drawing.Size(106, 20);
+ this.dateTakenTextBox.TabIndex = 1;
+ //
+ // systemFinishTextBox
+ //
+ this.systemFinishTextBox.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.systemFinishTextBox.Location = new System.Drawing.Point(6, 42);
+ this.systemFinishTextBox.Name = "systemFinishTextBox";
+ this.systemFinishTextBox.Size = new System.Drawing.Size(153, 20);
+ this.systemFinishTextBox.TabIndex = 2;
+ //
+ // rewardTextBox
+ //
+ this.rewardTextBox.Location = new System.Drawing.Point(103, 222);
+ this.rewardTextBox.Name = "rewardTextBox";
+ this.rewardTextBox.Size = new System.Drawing.Size(100, 20);
+ this.rewardTextBox.TabIndex = 3;
+ //
+ // systemTakenTextBox
+ //
+ this.systemTakenTextBox.Anchor = System.Windows.Forms.AnchorStyles.Left;
+ this.systemTakenTextBox.Location = new System.Drawing.Point(6, 34);
+ this.systemTakenTextBox.Name = "systemTakenTextBox";
+ this.systemTakenTextBox.Size = new System.Drawing.Size(153, 20);
+ this.systemTakenTextBox.TabIndex = 4;
+ //
+ // dateFinishTextBox
+ //
+ this.dateFinishTextBox.Anchor = System.Windows.Forms.AnchorStyles.Right;
+ this.dateFinishTextBox.Location = new System.Drawing.Point(322, 42);
+ this.dateFinishTextBox.Name = "dateFinishTextBox";
+ this.dateFinishTextBox.Size = new System.Drawing.Size(106, 20);
+ this.dateFinishTextBox.TabIndex = 5;
+ //
+ // changeButton
+ //
+ this.changeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.changeButton.Location = new System.Drawing.Point(347, 263);
+ this.changeButton.Name = "changeButton";
+ this.changeButton.Size = new System.Drawing.Size(99, 35);
+ this.changeButton.TabIndex = 6;
+ this.changeButton.Text = "Change";
+ this.changeButton.UseVisualStyleBackColor = true;
+ this.changeButton.Click += new System.EventHandler(this.changeButton_Click);
+ //
+ // closeButton
+ //
+ this.closeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.closeButton.Location = new System.Drawing.Point(12, 263);
+ this.closeButton.Name = "closeButton";
+ this.closeButton.Size = new System.Drawing.Size(75, 34);
+ this.closeButton.TabIndex = 7;
+ this.closeButton.Text = "Close";
+ this.closeButton.UseVisualStyleBackColor = true;
+ this.closeButton.Click += new System.EventHandler(this.closeButton_Click);
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(12, 13);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(71, 13);
+ this.label1.TabIndex = 8;
+ this.label1.Text = "Mission name";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(6, 18);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(70, 13);
+ this.label2.TabIndex = 9;
+ this.label2.Text = "System name";
+ //
+ // stationTakenTextBox
+ //
+ this.stationTakenTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+ this.stationTakenTextBox.Location = new System.Drawing.Point(165, 34);
+ this.stationTakenTextBox.Name = "stationTakenTextBox";
+ this.stationTakenTextBox.Size = new System.Drawing.Size(151, 20);
+ this.stationTakenTextBox.TabIndex = 10;
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(165, 18);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(69, 13);
+ this.label3.TabIndex = 11;
+ this.label3.Text = "Station name";
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(6, 26);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(70, 13);
+ this.label4.TabIndex = 12;
+ this.label4.Text = "System name";
+ //
+ // stationFinishTextBox
+ //
+ this.stationFinishTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
+ this.stationFinishTextBox.Location = new System.Drawing.Point(165, 42);
+ this.stationFinishTextBox.Name = "stationFinishTextBox";
+ this.stationFinishTextBox.Size = new System.Drawing.Size(151, 20);
+ this.stationFinishTextBox.TabIndex = 13;
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(15, 225);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(82, 13);
+ this.label5.TabIndex = 14;
+ this.label5.Text = "Mission Reward";
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(165, 26);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(69, 13);
+ this.label6.TabIndex = 15;
+ this.label6.Text = "Station name";
+ //
+ // label7
+ //
+ this.label7.AutoSize = true;
+ this.label7.Location = new System.Drawing.Point(319, 18);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(54, 13);
+ this.label7.TabIndex = 16;
+ this.label7.Text = "Date/time";
+ //
+ // label8
+ //
+ this.label8.AutoSize = true;
+ this.label8.Location = new System.Drawing.Point(319, 26);
+ this.label8.Name = "label8";
+ this.label8.Size = new System.Drawing.Size(54, 13);
+ this.label8.TabIndex = 17;
+ this.label8.Text = "Date/time";
+ //
+ // groupBox1
+ //
+ this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.groupBox1.Controls.Add(this.label2);
+ this.groupBox1.Controls.Add(this.dateTakenTextBox);
+ this.groupBox1.Controls.Add(this.label7);
+ this.groupBox1.Controls.Add(this.systemTakenTextBox);
+ this.groupBox1.Controls.Add(this.stationTakenTextBox);
+ this.groupBox1.Controls.Add(this.label3);
+ this.groupBox1.Location = new System.Drawing.Point(12, 59);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(434, 69);
+ this.groupBox1.TabIndex = 18;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Mission Taken";
+ //
+ // groupBox2
+ //
+ this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.groupBox2.Controls.Add(this.label4);
+ this.groupBox2.Controls.Add(this.systemFinishTextBox);
+ this.groupBox2.Controls.Add(this.label8);
+ this.groupBox2.Controls.Add(this.dateFinishTextBox);
+ this.groupBox2.Controls.Add(this.label6);
+ this.groupBox2.Controls.Add(this.stationFinishTextBox);
+ this.groupBox2.Location = new System.Drawing.Point(12, 134);
+ this.groupBox2.Name = "groupBox2";
+ this.groupBox2.Size = new System.Drawing.Size(434, 75);
+ this.groupBox2.TabIndex = 19;
+ this.groupBox2.TabStop = false;
+ this.groupBox2.Text = "Mission Finished";
+ //
+ // EditMissionForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(452, 309);
+ this.Controls.Add(this.groupBox2);
+ this.Controls.Add(this.groupBox1);
+ this.Controls.Add(this.label5);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.closeButton);
+ this.Controls.Add(this.changeButton);
+ this.Controls.Add(this.rewardTextBox);
+ this.Controls.Add(this.missionNameTextBox);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "EditMissionForm";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Edit Mission Details";
+ this.Load += new System.EventHandler(this.EditMissionForm_Load);
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ this.groupBox2.ResumeLayout(false);
+ this.groupBox2.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TextBox missionNameTextBox;
+ private System.Windows.Forms.TextBox dateTakenTextBox;
+ private System.Windows.Forms.TextBox systemFinishTextBox;
+ private System.Windows.Forms.TextBox rewardTextBox;
+ private System.Windows.Forms.TextBox systemTakenTextBox;
+ private System.Windows.Forms.TextBox dateFinishTextBox;
+ private System.Windows.Forms.Button changeButton;
+ private System.Windows.Forms.Button closeButton;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.TextBox stationTakenTextBox;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.TextBox stationFinishTextBox;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.Label label7;
+ private System.Windows.Forms.Label label8;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.GroupBox groupBox2;
+ }
+}
\ No newline at end of file
diff --git a/EliteReporter/Forms/EditMissionForm.cs b/EliteReporter/Forms/EditMissionForm.cs
new file mode 100644
index 0000000..89807ec
--- /dev/null
+++ b/EliteReporter/Forms/EditMissionForm.cs
@@ -0,0 +1,72 @@
+using EliteReporter.Models;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace EliteReporter.Forms
+{
+ public partial class EditMissionForm : Form
+ {
+ MissionInfo mInfo;
+ public EditMissionForm(MissionInfo mInfo)
+ {
+ InitializeComponent();
+ this.mInfo = mInfo;
+ }
+
+ private void changeButton_Click(object sender, EventArgs e)
+ {
+ mInfo.MissionName = missionNameTextBox.Text;
+ try
+ {
+ mInfo.MissionTakenDateTime = DateTime.ParseExact(dateTakenTextBox.Text, "dd.MM.yyyy HH:mm", CultureInfo.InvariantCulture);
+ }
+ catch (FormatException ex) { }
+ mInfo.MissionTakenEDProfile.PortName = stationTakenTextBox.Text;
+ mInfo.MissionTakenEDProfile.SystemName = systemTakenTextBox.Text;
+ if (mInfo.MissionFinishedEDProfile == null)
+ {
+ mInfo.MissionFinishedEDProfile = new EDProfile();
+ }
+ if(!string.IsNullOrEmpty(dateFinishTextBox.Text))
+ {
+ try {
+ mInfo.MissionFinishedDateTime = DateTime.ParseExact(dateFinishTextBox.Text, "dd.MM.yyyy HH:mm", CultureInfo.InvariantCulture);
+ }catch(FormatException ex){}
+ }
+
+ mInfo.MissionFinishedEDProfile.PortName = stationFinishTextBox.Text;
+ mInfo.MissionFinishedEDProfile.SystemName = systemFinishTextBox.Text;
+ mInfo.Reward = int.Parse(rewardTextBox.Text);
+ this.DialogResult = DialogResult.OK;
+ }
+
+ private void closeButton_Click(object sender, EventArgs e)
+ {
+ this.DialogResult = DialogResult.Cancel;
+ }
+
+ private void EditMissionForm_Load(object sender, EventArgs e)
+ {
+ missionNameTextBox.Text = mInfo.MissionName;
+ dateTakenTextBox.Text = mInfo.MissionTakenDateTime.Value.ToString("dd.MM.yyyy HH:mm");
+ stationTakenTextBox.Text = mInfo.MissionTakenEDProfile.PortName;
+ systemTakenTextBox.Text = mInfo.MissionTakenEDProfile.SystemName;
+ if (mInfo.MissionFinishedEDProfile != null)
+ {
+ stationFinishTextBox.Text = mInfo.MissionFinishedEDProfile.PortName;
+ systemFinishTextBox.Text = mInfo.MissionFinishedEDProfile.SystemName;
+ if (mInfo.MissionFinishedDateTime != null)
+ dateFinishTextBox.Text = mInfo.MissionFinishedDateTime.Value.ToString("dd.MM.yyyy HH:mm");
+ }
+ rewardTextBox.Text = mInfo.Reward.ToString();
+ }
+ }
+}
diff --git a/EliteReporter/Forms/EditMissionForm.resx b/EliteReporter/Forms/EditMissionForm.resx
new file mode 100644
index 0000000..a77968a
--- /dev/null
+++ b/EliteReporter/Forms/EditMissionForm.resx
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAANgOAADYDgAAAAAAAAAA
+ AAA6T17/Ik53/xBQkP8QV5v/D1mh/wtZpv8NWaX/Flyf/xdhl/8BW6j/EmCl/wlXnv8MWaL/GGCm/wVS
+ qf8UWq7/C1yt/xZNtf8bWqT/B2Kl/xJYrP8UVaD/AVyf/xlinP8WXJ//DVml/wtZpv8PWaH/EFeb/xBQ
+ kP8iTnf/Ok9e/yVRev8RUZL/A1as/wRctv8IYbz/A2HE/wRixf8MZcD/E13H/wBVz/8QX83/CWHL/wBg
+ yP8AXr7/AWrL/whfr/8CaKn/AGjM/wBmvf8AYrz/AFzG/xJqz/8AX8f/Bl2//wxlwP8EYsX/A2HE/whh
+ vP8EXLb/A1as/xFRkv8lUXr/ElKS/wJVq/8AXML/AGTK/wNq0f8Aa9r/AGze/wFt2f8AcNT/AGrY/wBs
+ y/8Eb9D/BnLX/wltzf8bbsT/AB5L/wAZTP8Wa87/EW3U/w5m0v8Eatr/CG/W/wBi0v8Acdz/AW3Z/wBs
+ 3v8Aa9r/A2rR/wBkyv8AXML/AlWr/xJSkv8PVpr/Alq0/wBjyf8HbM//C3HU/wVy3v8AcuT/A3Lg/wJy
+ 3P8Idub/EXbZ/wVx3f8AbeD/AHHm/xp22/8AIEb/ABw//wp11/8Ac+X/DHbp/wNv2/8Ab8//Cn/o/wRz
+ 2/8DcuD/AHLk/wVy3v8LcdT/B2zP/wBjyf8CWrT/D1aa/xBaov8HYLv/A2rR/w1z1v8QeNv/Cnnn/wV4
+ 6/8Hd+f/CnPs/w118P8Td+f/CX30/wB08P8Advb/AG/Z/wYvSP8AIzn/B3nd/wB59v8Ac+//FoD2/wZ1
+ 4f8AeO7/Enbs/wd35/8FeOv/Cnnn/xB42/8Nc9b/A2rR/wdgu/8QWqL/DFqn/wNhxP8Aa9r/B3Tg/wp5
+ 5/8Fe/L/Anv2/wV78v8AfvD/AHvu/wF65/8IhPD/DILp/wx/7f8AU6n/AAIA/wUAAP8BRZ7/EX3z/xJ/
+ 8/8Ue+//CHnt/wB49/8He/L/BXvy/wJ79v8Fe/L/Cnnn/wd04P8Aa9r/A2HE/wxap/8OWqb/A2HE/wBr
+ 3f8AcuT/BHfq/wF69f8Bevj/BXvy/wh58v8He/j/Cnz4/wZ58v8MduH/DXru/wdewP8AAAH/AAMA/wNc
+ rf8Ieef/AnXe/wSC7v8IgfX/AHLw/wSE7/8Fe/L/AXr4/wF69f8Ed+r/AHLk/wBr3f8DYcT/Dlqm/xdd
+ oP8LZL//AW3Z/wRz4f8Hd+f/BHrx/wZ88/8Le+3/D4Du/wF37v8Aevb/AH34/wZ96v8AfPn/B3js/wEe
+ M/8AESz/EH3p/wp5/f8NevT/AH31/wN29f8Udfv/AH3m/wt77f8GfPP/BHrx/wd35/8Ec+H/AW3Z/wtk
+ v/8XXaD/D1yh/whjxv8DbNX/BnXb/wBz7P8Ff/v/AHfo/wl67v8KdP3/AHP0/wxgov8ADy3/DBkn/wAc
+ Jf8ARH7/CE+w/wBOm/8FSZb/ABkn/w4gIf8AFin/BVij/wBy//8Le/f/AHjw/wSC7v8Ae+//CXzr/wx9
+ 3v8AatP/BWDD/w9cof8JWKn/DG3E/wJmzP8JceL/AHnr/wB68v8NffX/Cn3r/wF/6/8ZftT/Ak+Y/xFI
+ jf8APZ7/ETJf/woMDP8DbOv/AWzl/w8PFf8OMlj/ADma/xRKkf8FU5j/GXrb/wB95v8JeOz/DnXw/xBu
+ zf8AZ9D/Amjf/wdp1f8AYc3/F1ms/xFcq/8AXrj/AGvf/w967f8Qe93/CHzz/wBy//8Ad/T/AEuJ/wMP
+ If8ABSL/CxYe/wUdNf8ACi7/CgIA/wBFf/8ARIf/CwQA/wAPIf8AEzf/DBMn/wARHv8ADhv/AEaK/xCA
+ 8v8AXuD/AD17/wBRlf8NduX/CHHe/wBcyP8dXKD/C1aa/w9myP8AaeD/AHHf/xFy2v8Rgfn/D3zm/wZA
+ gf8HAQD/DgAB/wsDDv8ABgD/AAIB/wIAA/8SAQD/AAcI/wADD/8RAwD/AQUA/wAACv8AAAf/CgsC/w4A
+ AP8HAAD/EEN1/wtxyv8ASY7/CFad/wNx0P8AZs7/A2fR/xVclf8aYqL/Dl+6/xB33v8AceP/AHb+/wlz
+ 5v8AMGH/AAEA/wABBv8ABBL/BAEA/wcHAP8BAwD/CAAA/wUABv8WBQL/EgMB/wUAC/8JBAD/AwMD/wUC
+ AP8EBgD/AAcY/wAEB/8AAAH/ADNm/w9u3P8Db/L/Am7d/xp54P8EVrv/FF+t/wpXrf8AYsD/AmPE/w5y
+ 3P8HdNb/ADJf/wYGAP8DCQD/AQUK/wICAP8BBAj/CAAE/wwAAf8CAQD/AAIA/wAAD/8AAAr/AAAH/wAB
+ AP8NAQH/BQAD/wADBP8AAAP/AAYD/wEIA/8JCwv/AC5m/wlz2P8Zdtn/EWvJ/wBivv8AUrL/ClOj/wFl
+ w/8GcuH/AnPo/wB15v8AaM3/EmfK/wBiyP8SFin/AAEJ/wAAC/8KAAb/AAAG/wAGA/8QLTH/AGLO/wBn
+ y/8KJDL/AAgA/wAABv8GAAL/AAAL/wAAEv8PFSL/AGDC/wpozP8AYMD/AHjo/wBx5P8FcNL/AWvD/xFc
+ of8MXa7/D1+8/wBmzf8NfeH/C3Th/wBz+P8SfuT/AB07/wAAB/8OBAD/AAMC/wADAP8IIjD/AESX/wZI
+ mf8OID3/ECc9/wA/lP8ATpv/CSIy/wACAP8ACgT/DAAA/wAAB/8EIUD/Bnfs/xR/+P8Lc+r/AHHl/wxw
+ 1v8AV8P/GF6h/wpfqf8GXsP/AGfM/wp34f8Aee3/CXDN/wAZPv8DAgD/GwgA/wABB/8QBwD/AwEH/wBe
+ uP8AeOX/Djtn/wAADv8AABP/Dz9p/wJ95f8AU7X/AwAJ/xUKAP8AAQf/FgAE/wIDAP8AGj//CnDQ/wJ4
+ 7/8MdeL/AmfO/wxexP8OYKj/B1ic/whhyf8DbeD/AH3k/wBx4f8QJUv/BQAB/wAEAP8FAAD/CREH/wAA
+ Bv8NAAL/ABlE/xGD5/8AbM7/FA8Y/xMTGf8AbdX/Cnrk/wAfRv8MAAD/AAAK/wUJCv8FAAD/AAUA/wQA
+ Af8PJU7/AHDi/wB85f8Ha+H/DGHJ/wpXnP8RWa3/AGXC/wRv2P8AbtH/AnPs/wYACf8FBAD/DQoA/wEI
+ Af8AAQr/BAEA/wQAAP8ACCb/AGri/wOA6f8AEC//ABMt/wF86v8AbOn/AAUc/wcDAP8FAAD/AQER/wAI
+ AP8LCgD/BQQA/wcAC/8Ccu7/AGzR/wVu1/8AZMH/FFes/xJZsP8AYrv/AXDS/wx34P8Sa9P/AAAI/wAF
+ Dv8EAAD/AAMA/w0AAv8EAAb/Ahwj/xNuyf8RefL/C3Dc/wZTkf8DUpH/DHbb/xJ87f8Wbc3/ABUh/wQA
+ Af8OAAD/AAIB/wIAAP8ABQ7/AAAJ/xJq1P8MdeL/Am7T/wBhuv8SWKz/Cl6g/w1hwf8Ba9z/E3Xb/wk5
+ Y/8AAgD/AAAK/wAAB/8AAQD/CwUK/wQZP/8Ic9T/AH3c/wBx9P8bc+n/AFKo/wBVrv8YdeL/AHDt/wiC
+ 5v8Kctf/ARY1/wQAAP8BAgD/AAAH/wAACv8AAgD/CThk/xN03P8Aat3/DGDA/whcnv8GXKj/DWHB/wRp
+ zP8CMW7/BAUB/wAGAP8PBgP/DgAA/wUACf8AJkf/EXrp/wB18/8Af/T/DoHv/wh0+/8Ha9X/B3DR/wNw
+ +v8Rg/X/AH7t/wB78/8LcOT/ACNG/wQCAf8MAQD/DgUC/wAFAP8DBQX/ATJw/wRpzP8KYMD/BVym/wpT
+ rv8AYrr/B2a2/wAABP8MAAD/AAID/wMGAP8GAAX/AChX/xZ95P8AePT/AHz8/wR77v8AePL/EX3t/wd4
+ 8f8Adun/FID2/wB09f8Ifu3/AHXx/wF7/f8Ve+X/AChO/wQABP8CBQD/AAEE/wsAAP8AAAb/BWW4/wBi
+ uv8IVK7/G1io/wZowP8AVLH/BQUA/wABDP8NAAX/AAMA/wIza/8Jgev/BXf6/wJ68v8Lgun/BXn1/wt1
+ 8P8NgO//AXzy/wB79f8Jf+n/C3bv/wZ1+f8PgvH/AXjs/wR49P8JgO3/ADFp/wADAP8KAAT/AAIP/wUF
+ AP8AVLP/BWnB/xlYqP8HW6f/FGfD/xFKh/8AAAj/CAUA/wQEBP8CPWv/AH3//wN78v8De/L/A3vy/wN7
+ 8v8De/L/A3vy/wN78v8De/L/A3vy/wN78v8De/L/A3vy/wN78v8De/L/A3vy/wN78v8Aff7/Bz9w/wID
+ Af8GBAD/AAAK/xRLiP8RZ7v/CFyo/w9Xpf8AQob/AAAd/wAIAv8IAAr/AEeK/wl39f8KfOf/BXzw/wV8
+ 8P8FfPD/BXzw/wV88P8FfPD/BXzw/wV88P8FfPD/BXzw/wV88P8FfPD/BXzw/wV88P8FfPD/BXzw/wh4
+ 6P8FeOv/AESI/wEADf8ACwD/AAMc/wBBjv8OW6D/FU2O/wAFE/8ABAD/DAIO/wBRjf8Tefr/AHj0/wd/
+ 9v8He/D/B3vw/wd78P8He/D/B3vw/wd78P8He/D/B3vw/wd78P8He/D/B3vw/wd78P8He/D/B3vw/wd7
+ 8P8He/D/CYT4/wBy8f8Me/n/A1OO/wEACv8AAwD/AAoS/xJIif8TLUv/AQAC/w4KBf8AW5//E23p/wp9
+ 5f8BeOv/AXLn/wR57P8Eeez/BHns/wR57P8Eeez/BHns/wR57P8Eeez/BHns/wR57P8Eeez/BHns/wR5
+ 7P8Eeez/BHns/wR57P8Hd+f/AHbw/xF94v8Lc+T/AFSg/wUJA/8EAgD/DChH/wggRP8ACBL/Ak2X/wJk
+ 1P8Fet3/AGvf/wd35/8Hctv/AHPi/wBz4v8Ac+L/AHPi/wBz4v8Ac+L/AHPi/wBz4v8Ac+L/AHPi/wBz
+ 4v8Ac+L/AHPi/wBz4v8Ac+L/AHPi/wJu2v8NeuP/AGvd/wtz3v8AatD/Ck6X/wAFFf8LI0H/Citc/wBB
+ iv8PYr3/AFzK/wBu0f8GbtH/AGPe/why1/8EbdT/BG3U/wRt1P8EbdT/BG3U/wRt1P8EbdT/BG3U/wRt
+ 1P8EbdT/BG3U/wRt1P8EbdT/BG3U/wRt1P8EbdT/B2/U/wBo4P8Ja8//AGrO/wZfzf8JZb7/ADuI/wou
+ Xv8aTXX/IFGb/wRXrf8AZrH/Dlq+/wJgv/8IabP/AFvI/wpjvv8KY77/CmO+/wpjvv8KY77/CmO+/wpj
+ vv8KY77/CmO+/wpjvv8KY77/CmO+/wpjvv8KY77/CmO+/wpjvv8CX8b/Dmi9/wBivv8QW7f/AGW4/wdV
+ r/8bU5T/Gkh3/09WWf8SS3j/CVCU/xFQmv8JXqT/EFie/xtcp/8MWqb/Dliq/w5Yqv8OWKr/Dliq/w5Y
+ qv8OWKr/Dliq/w5Yqv8OWKr/Dliq/w5Yqv8OWKr/Dliq/w5Yqv8OWKr/Dliq/w9cq/8WW6H/EFig/wtg
+ qv8QTpT/CVCU/xZNgP9LVVX/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/EliteReporter/Forms/ReportForm.Designer.cs b/EliteReporter/Forms/ReportForm.Designer.cs
index 5c86b05..4eaa867 100644
--- a/EliteReporter/Forms/ReportForm.Designer.cs
+++ b/EliteReporter/Forms/ReportForm.Designer.cs
@@ -44,6 +44,8 @@ private void InitializeComponent()
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.applicationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.rewardHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.deleteButton = new System.Windows.Forms.Button();
this.statusStrip1.SuspendLayout();
this.menuStrip1.SuspendLayout();
this.SuspendLayout();
@@ -70,17 +72,19 @@ private void InitializeComponent()
this.startSystemHeader,
this.missionNameHeader,
this.endDateHeader,
- this.endSystemHeader});
+ this.endSystemHeader,
+ this.rewardHeader});
this.missionListView.FullRowSelect = true;
- this.missionListView.LabelEdit = true;
this.missionListView.Location = new System.Drawing.Point(9, 26);
this.missionListView.Margin = new System.Windows.Forms.Padding(2);
this.missionListView.Name = "missionListView";
+ this.missionListView.ShowItemToolTips = true;
this.missionListView.Size = new System.Drawing.Size(814, 360);
this.missionListView.TabIndex = 1;
this.missionListView.UseCompatibleStateImageBehavior = false;
this.missionListView.View = System.Windows.Forms.View.Details;
this.missionListView.AfterLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.missionListView_AfterLabelEdit);
+ this.missionListView.DoubleClick += new System.EventHandler(this.missionListView_DoubleClick);
//
// startDateHeader
//
@@ -178,11 +182,29 @@ private void InitializeComponent()
this.settingsToolStripMenuItem.Text = "Settings";
this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click);
//
+ // rewardHeader
+ //
+ this.rewardHeader.Text = "Reward";
+ this.rewardHeader.Width = 70;
+ //
+ // deleteButton
+ //
+ this.deleteButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.deleteButton.Location = new System.Drawing.Point(101, 390);
+ this.deleteButton.Margin = new System.Windows.Forms.Padding(2);
+ this.deleteButton.Name = "deleteButton";
+ this.deleteButton.Size = new System.Drawing.Size(86, 40);
+ this.deleteButton.TabIndex = 7;
+ this.deleteButton.Text = "Delete";
+ this.deleteButton.UseVisualStyleBackColor = true;
+ this.deleteButton.Click += new System.EventHandler(this.deleteButton_Click);
+ //
// ReportForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(831, 454);
+ this.Controls.Add(this.deleteButton);
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.menuStrip1);
this.Controls.Add(this.exportButton);
@@ -224,6 +246,8 @@ private void InitializeComponent()
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem applicationToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem;
+ private System.Windows.Forms.ColumnHeader rewardHeader;
+ private System.Windows.Forms.Button deleteButton;
}
}
diff --git a/EliteReporter/Forms/ReportForm.cs b/EliteReporter/Forms/ReportForm.cs
index c3edc30..22fcd09 100644
--- a/EliteReporter/Forms/ReportForm.cs
+++ b/EliteReporter/Forms/ReportForm.cs
@@ -62,7 +62,7 @@ private void analyzeScreenShot(string pathToBmp)
else
{
var result = analyzer.findAndAnalyzeMissionSummaryPage(pathToBmp);
- if (result == null)
+ if (result == null || result.MissionName == null)
{
Trace.TraceInformation("Can't recognize anything from pic: " + pathToBmp);
return;
@@ -73,7 +73,7 @@ private void analyzeScreenShot(string pathToBmp)
if (existingLvItem != null)
{
//finshing mission
- if (((MissionInfo)existingLvItem.Tag).MissionTakenDateTime.Add(takenMisisonCoolDown) < DateTime.UtcNow)
+ if (((MissionInfo)existingLvItem.Tag).MissionTakenDateTime.Value.Add(takenMisisonCoolDown) < DateTime.UtcNow)
{
var edProfile = edapi.getProfile();
var missionInfo = (MissionInfo)existingLvItem.Tag;
@@ -81,8 +81,7 @@ private void analyzeScreenShot(string pathToBmp)
{
missionInfo.MissionFinishedDateTime = DateTime.UtcNow;
missionInfo.MissionFinishedEDProfile = edProfile;
- existingLvItem.SubItems.Add(missionInfo.MissionFinishedDateTime.ToString("dd/MM/yyyy HH:mm"));
- existingLvItem.SubItems.Add(missionInfo.MissionFinishedEDProfile.ToString());
+ fillMissionListViewItem(existingLvItem, missionInfo);
}
}
else
@@ -99,10 +98,12 @@ private void analyzeScreenShot(string pathToBmp)
commanderName = edProfile.CommanderName;
result.MissionTakenDateTime = DateTime.UtcNow;
result.MissionTakenEDProfile = edProfile;
- ListViewItem lvItem = new ListViewItem(result.MissionTakenDateTime.ToString("dd/MM/yyyy HH:mm"));
- lvItem.SubItems.Add(result.MissionTakenEDProfile.ToString());
- lvItem.SubItems.Add(result.MissionName);
+ ListViewItem lvItem = new ListViewItem();
lvItem.Tag = result;
+ string[] str = new string[missionListView.Columns.Count];
+ for (int i = 0; i < str.Length; i++) { str[i] = ""; }
+ lvItem.SubItems.AddRange(str);
+ fillMissionListViewItem(lvItem, result);
missionListView.Items.Add(lvItem);
}
}
@@ -111,16 +112,17 @@ private void analyzeScreenShot(string pathToBmp)
private void onSettingsChanged(object sender, CancelEventArgs e)
{
- if (analyzer != null)
+ if (analyzer != null && analyzer.getLanguage().Code != Properties.Settings.Default.Language)
{
analyzer.Dispose();
analyzer = new ScreenAnalyzer(Properties.Settings.Default.Language);
}
- if (watcher != null)
+ if (watcher != null && watcher.Path != Properties.Settings.Default.PicturesFolder)
{
watcher.Path = Properties.Settings.Default.PicturesFolder;
}
- takenMisisonCoolDown = new TimeSpan(0, 0, Properties.Settings.Default.MissionCoolDown);
+ if(takenMisisonCoolDown.TotalSeconds != Properties.Settings.Default.MissionCoolDown)
+ takenMisisonCoolDown = new TimeSpan(0, 0, Properties.Settings.Default.MissionCoolDown);
}
private void activateButton_Click(object sender, EventArgs e)
@@ -240,5 +242,46 @@ private void ReportForm_Shown(object sender, EventArgs e)
{
initialize();
}
+
+ private void deleteButton_Click(object sender, EventArgs e)
+ {
+ if(MessageBox.Show("Delete selected missions?", "Confirm removal", MessageBoxButtons.YesNo) == DialogResult.Yes)
+ {
+ for (int i = missionListView.SelectedItems.Count - 1; i >= 0; i--)
+ {
+ ListViewItem itm = missionListView.SelectedItems[i];
+ missionListView.Items[itm.Index].Remove();
+ }
+ }
+ }
+
+ private void missionListView_DoubleClick(object sender, EventArgs e)
+ {
+ var selItems = missionListView.SelectedItems;
+ if (selItems.Count > 0)
+ {
+ var mInfo = (MissionInfo)selItems[0].Tag;
+ var form = new EditMissionForm(mInfo);
+ if (form.ShowDialog(this) == DialogResult.OK)
+ {
+ fillMissionListViewItem(selItems[0], mInfo);
+ }
+ form.Dispose();
+ }
+ }
+
+ private void fillMissionListViewItem(ListViewItem vItem, MissionInfo mInfo)
+ {
+ vItem.Text = mInfo.MissionTakenDateTime.Value.ToString("dd.MM.yyyy HH:mm");
+ vItem.SubItems[missionNameHeader.Index] = new ListViewItem.ListViewSubItem(vItem, mInfo.MissionName);
+ vItem.SubItems[startSystemHeader.Index] = new ListViewItem.ListViewSubItem(vItem, mInfo.MissionTakenEDProfile.ToString());
+ vItem.SubItems[rewardHeader.Index] = new ListViewItem.ListViewSubItem(vItem, mInfo.Reward.ToString());
+ if (mInfo.MissionFinishedDateTime != null)
+ vItem.SubItems[endDateHeader.Index] = new ListViewItem.ListViewSubItem(vItem, mInfo.MissionFinishedDateTime.Value.ToString("dd.MM.yyyy HH:mm"));
+ if (mInfo.MissionFinishedEDProfile != null)
+ {
+ vItem.SubItems[endSystemHeader.Index] = new ListViewItem.ListViewSubItem(vItem, mInfo.MissionFinishedEDProfile.ToString());
+ }
+ }
}
}
diff --git a/EliteReporter/Models/EDProfile.cs b/EliteReporter/Models/EDProfile.cs
index 3673a71..96aa1da 100644
--- a/EliteReporter/Models/EDProfile.cs
+++ b/EliteReporter/Models/EDProfile.cs
@@ -18,6 +18,8 @@ public class EDProfile
public override string ToString()
{
+ if (string.IsNullOrEmpty(SystemName) && string.IsNullOrEmpty(PortName))
+ return "";
return string.Format("{0}/{1}", SystemName, PortName);
}
}
diff --git a/EliteReporter/Models/MissionInfo.cs b/EliteReporter/Models/MissionInfo.cs
index 82c1e01..9dcac05 100644
--- a/EliteReporter/Models/MissionInfo.cs
+++ b/EliteReporter/Models/MissionInfo.cs
@@ -11,10 +11,10 @@ namespace EliteReporter.Models
public class MissionInfo
{
public string MissionName { get; set; }
- //public string StationName { get; set; }
+ public int Reward { get; set; }
- public DateTime MissionTakenDateTime { get; set; }
- public DateTime MissionFinishedDateTime { get; set; }
+ public DateTime? MissionTakenDateTime { get; set; }
+ public DateTime? MissionFinishedDateTime { get; set; }
public EDProfile MissionTakenEDProfile { get; set; }
public EDProfile MissionFinishedEDProfile { get; set; }
diff --git a/EliteReporter/Utils/ScreenAnalyzer.cs b/EliteReporter/Utils/ScreenAnalyzer.cs
index 4e24921..bf85aaa 100644
--- a/EliteReporter/Utils/ScreenAnalyzer.cs
+++ b/EliteReporter/Utils/ScreenAnalyzer.cs
@@ -16,6 +16,7 @@
using System.Xml;
using System.Xml.Linq;
using System.Threading;
+using System.Text.RegularExpressions;
namespace EliteReporter.Utils
{
@@ -32,6 +33,11 @@ public ScreenAnalyzer(string languageCode)
//ocr.SetVariable("tessedit_char_whitelist", language.OcrWhitelist);
}
+ public Language.LanguageType getLanguage()
+ {
+ return language;
+ }
+
public void Dispose()
{
ocr.Dispose();
@@ -56,6 +62,9 @@ public MissionInfo findAndAnalyzeMissionSummaryPage(string pathToBmp, bool inclu
double heightFactor = ((double)source.Height / (double)baseSize.Height);
Image yearTemplate = new Image("Assets\\3302_" + language.Code + ".bmp"); // Image A
yearTemplate = yearTemplate.Resize(widthFactor, Emgu.CV.CvEnum.Inter.Cubic);
+ Image rewardTemplate = new Image("Assets\\reward_" + language.Code + ".bmp"); // Image A
+ rewardTemplate = rewardTemplate.Resize(widthFactor, Emgu.CV.CvEnum.Inter.Cubic);
+ MissionInfo missionInfo = new MissionInfo();
try {
using (Image result = source.MatchTemplate(yearTemplate, Emgu.CV.CvEnum.TemplateMatchingType.CcoeffNormed))
{
@@ -63,7 +72,6 @@ public MissionInfo findAndAnalyzeMissionSummaryPage(string pathToBmp, bool inclu
Point[] minLocations, maxLocations;
result.MinMax(out minValues, out maxValues, out minLocations, out maxLocations);
- // You can try different values of the threshold. I guess somewhere between 0.75 and 0.95 would be good.
if (maxValues[0] > 0.7)
{
//mission name
@@ -84,26 +92,61 @@ public MissionInfo findAndAnalyzeMissionSummaryPage(string pathToBmp, bool inclu
var words = ocr.GetText();
var missionName = words.Replace("\r\n", " ").Trim();
Trace.TraceInformation("Mission name: " + missionName);
- var missionInfo = new MissionInfo()
- {
- MissionName = missionName
- };
+ missionInfo.MissionName = missionName;
if (includeImages)
{
missionInfo.Images.Add(missionRegion.ToBitmap());
}
- return missionInfo;
}
finally
{
missionRegion.Dispose();
}
+
}
}
+ using (Image result = source.MatchTemplate(rewardTemplate, Emgu.CV.CvEnum.TemplateMatchingType.CcoeffNormed))
+ {
+ double[] minValues, maxValues;
+ Point[] minLocations, maxLocations;
+ result.MinMax(out minValues, out maxValues, out minLocations, out maxLocations);
+
+ // You can try different values of the threshold. I guess somewhere between 0.75 and 0.95 would be good.
+ if (maxValues[0] > 0.7)
+ {
+ int reward = 0;
+ // reward
+ var match = new Rectangle(new Point(maxLocations[0].X + rewardTemplate.Width + (int)(210 * widthFactor),
+ maxLocations[0].Y),
+ new Size((int)(210 * widthFactor), rewardTemplate.Height));
+ if (match.X + match.Width > source.Width || match.Y + match.Height > source.Height)
+ {
+ return missionInfo;
+ }
+ var rewardRegion = source.GetSubRect(match);
+ try
+ {
+ if (rewardRegion.Height < 20)
+ rewardRegion = rewardRegion.Resize((double)20 / rewardRegion.Height, Emgu.CV.CvEnum.Inter.Cubic);
+ ocr.Recognize(rewardRegion.Convert());
+ var words = ocr.GetText();
+ int.TryParse(Regex.Replace(words, @"[^0-9$]", "").Trim(), out reward);
+ Trace.TraceInformation("Reward: " + reward);
+ missionInfo.Reward = reward;
+ }
+ finally
+ {
+ rewardRegion.Dispose();
+ }
+ }
+ }
+
+ return missionInfo;
} finally
{
source.Dispose();
yearTemplate.Dispose();
+ rewardTemplate.Dispose();
}
return null;
}