LicenceManager 2.1c1 :

- modifiche per AboutBox
- tolte costanti inutili
- semplificato Ini file
- modificata generazione licenza.
This commit is contained in:
Dario Sassi
2019-03-07 07:51:52 +00:00
parent 747d4c746d
commit c43ef9c011
34 changed files with 326 additions and 1218 deletions
-182
View File
@@ -1,182 +0,0 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class AboutBox
Inherits System.Windows.Forms.Form
'Form esegue l'override del metodo Dispose per pulire l'elenco dei componenti.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
Friend WithEvents TableLayoutPanel As System.Windows.Forms.TableLayoutPanel
Friend WithEvents LogoPictureBox As System.Windows.Forms.PictureBox
Friend WithEvents LabelProductName As System.Windows.Forms.Label
Friend WithEvents LabelVersion As System.Windows.Forms.Label
Friend WithEvents LabelCompanyName As System.Windows.Forms.Label
Friend WithEvents TextBoxDescription As System.Windows.Forms.TextBox
Friend WithEvents OKButton As System.Windows.Forms.Button
Friend WithEvents LabelCopyright As System.Windows.Forms.Label
'Richiesto da Progettazione Windows Form
Private components As System.ComponentModel.IContainer
'NOTA: la procedura che segue è richiesta da Progettazione Windows Form
'Può essere modificata in Progettazione Windows Form.
'Non modificarla mediante l'editor del codice.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(AboutBox))
Me.TableLayoutPanel = New System.Windows.Forms.TableLayoutPanel()
Me.LogoPictureBox = New System.Windows.Forms.PictureBox()
Me.LabelProductName = New System.Windows.Forms.Label()
Me.LabelVersion = New System.Windows.Forms.Label()
Me.LabelCopyright = New System.Windows.Forms.Label()
Me.LabelCompanyName = New System.Windows.Forms.Label()
Me.TextBoxDescription = New System.Windows.Forms.TextBox()
Me.OKButton = New System.Windows.Forms.Button()
Me.TableLayoutPanel.SuspendLayout()
CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'TableLayoutPanel
'
Me.TableLayoutPanel.ColumnCount = 2
Me.TableLayoutPanel.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.0!))
Me.TableLayoutPanel.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67.0!))
Me.TableLayoutPanel.Controls.Add(Me.LogoPictureBox, 0, 0)
Me.TableLayoutPanel.Controls.Add(Me.LabelProductName, 1, 0)
Me.TableLayoutPanel.Controls.Add(Me.LabelVersion, 1, 1)
Me.TableLayoutPanel.Controls.Add(Me.LabelCopyright, 1, 2)
Me.TableLayoutPanel.Controls.Add(Me.LabelCompanyName, 1, 3)
Me.TableLayoutPanel.Controls.Add(Me.TextBoxDescription, 1, 4)
Me.TableLayoutPanel.Controls.Add(Me.OKButton, 1, 5)
Me.TableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill
Me.TableLayoutPanel.Location = New System.Drawing.Point(12, 11)
Me.TableLayoutPanel.Margin = New System.Windows.Forms.Padding(4)
Me.TableLayoutPanel.Name = "TableLayoutPanel"
Me.TableLayoutPanel.RowCount = 6
Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.0!))
Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.0!))
Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.0!))
Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.0!))
Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.0!))
Me.TableLayoutPanel.Size = New System.Drawing.Size(528, 318)
Me.TableLayoutPanel.TabIndex = 0
'
'LogoPictureBox
'
Me.LogoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill
Me.LogoPictureBox.Image = CType(resources.GetObject("LogoPictureBox.Image"), System.Drawing.Image)
Me.LogoPictureBox.Location = New System.Drawing.Point(4, 4)
Me.LogoPictureBox.Margin = New System.Windows.Forms.Padding(4)
Me.LogoPictureBox.Name = "LogoPictureBox"
Me.TableLayoutPanel.SetRowSpan(Me.LogoPictureBox, 6)
Me.LogoPictureBox.Size = New System.Drawing.Size(166, 310)
Me.LogoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom
Me.LogoPictureBox.TabIndex = 0
Me.LogoPictureBox.TabStop = False
'
'LabelProductName
'
Me.LabelProductName.Dock = System.Windows.Forms.DockStyle.Fill
Me.LabelProductName.Location = New System.Drawing.Point(182, 0)
Me.LabelProductName.Margin = New System.Windows.Forms.Padding(8, 0, 4, 0)
Me.LabelProductName.MaximumSize = New System.Drawing.Size(0, 21)
Me.LabelProductName.Name = "LabelProductName"
Me.LabelProductName.Size = New System.Drawing.Size(342, 21)
Me.LabelProductName.TabIndex = 0
Me.LabelProductName.Text = "Nome prodotto"
Me.LabelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'LabelVersion
'
Me.LabelVersion.Dock = System.Windows.Forms.DockStyle.Fill
Me.LabelVersion.Location = New System.Drawing.Point(182, 31)
Me.LabelVersion.Margin = New System.Windows.Forms.Padding(8, 0, 4, 0)
Me.LabelVersion.MaximumSize = New System.Drawing.Size(0, 21)
Me.LabelVersion.Name = "LabelVersion"
Me.LabelVersion.Size = New System.Drawing.Size(342, 21)
Me.LabelVersion.TabIndex = 0
Me.LabelVersion.Text = "Versione"
Me.LabelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'LabelCopyright
'
Me.LabelCopyright.Dock = System.Windows.Forms.DockStyle.Fill
Me.LabelCopyright.Location = New System.Drawing.Point(182, 62)
Me.LabelCopyright.Margin = New System.Windows.Forms.Padding(8, 0, 4, 0)
Me.LabelCopyright.MaximumSize = New System.Drawing.Size(0, 21)
Me.LabelCopyright.Name = "LabelCopyright"
Me.LabelCopyright.Size = New System.Drawing.Size(342, 21)
Me.LabelCopyright.TabIndex = 0
Me.LabelCopyright.Text = "Copyright"
Me.LabelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'LabelCompanyName
'
Me.LabelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill
Me.LabelCompanyName.Location = New System.Drawing.Point(182, 93)
Me.LabelCompanyName.Margin = New System.Windows.Forms.Padding(8, 0, 4, 0)
Me.LabelCompanyName.MaximumSize = New System.Drawing.Size(0, 21)
Me.LabelCompanyName.Name = "LabelCompanyName"
Me.LabelCompanyName.Size = New System.Drawing.Size(342, 21)
Me.LabelCompanyName.TabIndex = 0
Me.LabelCompanyName.Text = "Nome società"
Me.LabelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'TextBoxDescription
'
Me.TextBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill
Me.TextBoxDescription.Location = New System.Drawing.Point(182, 128)
Me.TextBoxDescription.Margin = New System.Windows.Forms.Padding(8, 4, 4, 4)
Me.TextBoxDescription.Multiline = True
Me.TextBoxDescription.Name = "TextBoxDescription"
Me.TextBoxDescription.ReadOnly = True
Me.TextBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both
Me.TextBoxDescription.Size = New System.Drawing.Size(342, 151)
Me.TextBoxDescription.TabIndex = 0
Me.TextBoxDescription.TabStop = False
Me.TextBoxDescription.Text = resources.GetString("TextBoxDescription.Text")
'
'OKButton
'
Me.OKButton.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.OKButton.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.OKButton.Location = New System.Drawing.Point(424, 287)
Me.OKButton.Margin = New System.Windows.Forms.Padding(4)
Me.OKButton.Name = "OKButton"
Me.OKButton.Size = New System.Drawing.Size(100, 27)
Me.OKButton.TabIndex = 0
Me.OKButton.Text = "&OK"
'
'AboutBox
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 16.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.CancelButton = Me.OKButton
Me.ClientSize = New System.Drawing.Size(552, 340)
Me.Controls.Add(Me.TableLayoutPanel)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
Me.Margin = New System.Windows.Forms.Padding(4)
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "AboutBox"
Me.Padding = New System.Windows.Forms.Padding(12, 11, 12, 11)
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = "AboutBox"
Me.TableLayoutPanel.ResumeLayout(False)
Me.TableLayoutPanel.PerformLayout()
CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
End Class
-343
View File
@@ -1,343 +0,0 @@
<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="LogoPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
/9j/4AAQSkZJRgABAQEAeAB4AAD/4QB4RXhpZgAATU0AKgAAAAgABgExAAIAAAARAAAAVgMBAAUAAAAB
AAAAaAMDAAEAAAABAAAAAFEQAAEAAAABAQAAAFERAAQAAAABAAAOw1ESAAQAAAABAAAOwwAAAABwYWlu
dC5uZXQgNC4wLjIxAAAAAYagAACxj//bAEMAAgEBAgEBAgICAgICAgIDBQMDAwMDBgQEAwUHBgcHBwYH
BwgJCwkICAoIBwcKDQoKCwwMDAwHCQ4PDQwOCwwMDP/bAEMBAgICAwMDBgMDBgwIBwgMDAwMDAwMDAwM
DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAMIAwgMBIgACEQEDEQH/
xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEF
EiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNU
VVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE
xcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQID
BAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS
8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqC
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo
6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AP38ooooAKKKKAPIbL9sXw2f2vNT+D94fsetW+nW99Yzu48u
+d1Z5Lcf3ZVj2OBzuVmx9059er8Of2o/ixeeOv2vvHni6yvpYbpfEs/9nXltIVeOO1k+z20qN1B8uCNh
9a/T3/gnf+29a/tcfDP7Lqklvb+OvD8Spq1suEF2vRbuNf7jn7wHCMcdCpP2vEHCc8HhKWMo6rljzrtK
yu/Rv7n66fK5LxFHFYmphqm93yvur7eqX3r0Pomiiivij6oKK+Df+Djr9tT4lfsEf8E1dQ8ffCfxEvhb
xdH4i07T49QOn2195cMrP5iiO5jki5CgZKEjnGDzXsn/AASK+P3iv9qb/gmp8G/iF451JdZ8XeKvD0V5
qt8ttFbfapt7qX8uJVjXO0HCKq56AUqMvaRqSj9iSi/Vx5lbyt+IVPclCEvtpyXonyv8T6Oor8b/APg4
9/4KxfHr9gL9tz4DeEfhP42i8M+HfF1mtzrVm2i2F9/aDG/WLBe4hkdB5eV/dsh+YnOcEfan/BZz/grR
4b/4JF/srf8ACZahp6eIvF3iC5OmeFtCMvlLqF1t3PJKwBKwRL8zkDJJRBguCM/bR+rLFfZcpQ87xaT+
9tW/GxUabeIeGXxKMZeVpJv8Enc+vKK/En4CeJf+Cvv7bvwr0/40eHPHfwb+HHhvxHbDVNG8GahpNtDJ
f2zLuiMYksrmVElUgr592jYKklQcntv+CjP/AAVZ/au/Z5/4If2fxO1/w5b/AAN+Pdr46i8J6qiaZFeW
8kKGYm5torpZojHMI1wwMqkbij8grdeXsYt1NGnFNdVzSUfTRySavddhUV7Vrk1TvZ9NIuXrqk7O1n3P
2Aor8Of2QvC//BXP9tP9mjwb8VPC37UvwX0/w94409dSsbfVdCsYryKMsygSrHoMiBsqeFdh719If8Fd
v2tf2lP+CaH/AAQ80HxVfePtBuPj9Z3+maTr3ijTdLtrmznlllkMskEM1skPzKqr81uoALYUHBp4qX1e
LlV3Uoxt1vJ8v3J7/qLD/v5JU9mnK/SyV/xW2h+m1Ffjn/wbS/8ABbX4rftq/FLxp8G/2iNat9U+IFvp
lt4q8M302l22l3N/YSxRvJCY7eOOFgI5reeMhA7JLISWVRt63/go7/wU++NXwD/4OC/2cfgX4T8WQaX8
L/HFvpT69pB0iznbUWub67hkJnkiaeP5IkA8p0AK55yc7yoyjWo0OtVpRfTVPfro009N11Wpkqy9jWrd
KSbkutlbbpqmmtdnrZ6H6v0V+e//AAXq/wCC5Np/wSO+HXh/RfC2iaf4w+MHjoO+iaVe+Y1nY26MFa7u
VjZZHUuQiRKyGRg/zAIc/Nfg/wANf8Flr7wNb/FBvGnwbm+0xLqUfwyv9Psob3YcMLZmWzUK23gq2oBx
kgsGHHNTqKalJfDF2b6X6pd7dbJ2d1umjecHFxg/ikrpXV7d9dEn5tdHs0fs5RX4p/8ABdP/AILJ/tNf
sqfsB/s0+OPC8cnwO+InxJe9bxbpFzotvez2MtvFGPICX8EnloXdn+7uxsG8jJbW+Hn7Nn/BYj4leAND
8R2P7VvwHhsfEGn2+pW6T6NaLKkc0ayKHC+HyAwDDIBIz3PWrjeTqJbQlyt9L2vp5f5EuyjTk/tx5kut
r21+f5n7LUVj/Dyz1rTvAGh2/iO7t9Q8Q2+n28eqXUC7Yrm6EaiaRAFUBWfcR8q8HoOlbFVUjyycb3t1
Wz9CYS5oqVrX6PdBRRRUlBRRRQAVyvxz8fr8Kvgx4r8SNIsf9h6Tc3qs3QMkTMv/AI8BXVV8v/8ABX/4
jr4D/Ym1ixVttx4u1C00SE+oZzPKPxhgmH416GU4X6zjaWH/AJpJP0vr+Bx5jiPYYWpW/li387afifkX
bbjApf77Dc31PJrq/gz8YNd+AnxN0rxZ4bufs2raTJuUNny7mM8PDIB1jccEfQjkAjmKK/pKpTjUi4TV
09Gu6Z+E06koSU4OzWqZ+5v7L/7SWg/tU/CLT/FWhsY/OHk3tk7BptOuVA3wv9DyG6MpVhwa9Dr8T/2K
f2u9W/Y/+LsOsQefd+HdSK2+uaah4uoc8SIOnnR5JU9xuU8Nx+zXgXxxpPxL8H6br+hX0GpaPq0C3Npc
wtlJUYcfQjoQeQQQcEEV+C8UcOyyzEXhrSl8L7f3X5r8V8z9i4fzuOPoWl/Ejuu/mvJ/g/kfmf8A8Hfn
/KHTUf8Asb9I/wDQpa+hv+CA/wDyht/Z7/7FWL/0bJXkv/B0z8CPG37RP/BKPUvD/wAP/CHibxx4gXxP
pd0NL0HTJtRvWiR5A7rDCrOyruGSAcA5PGTXx3+wH/wWN/am/Yb/AGNvh78JP+Hcv7QHij/hA9KXTP7V
+z6vY/bsMzb/ACf7Hk8v72Mb26da+SwMlGGJg93Ug15pU0m/vZ9FjIN1MPNbKEk/VzuvwRwP/B4L/wAp
Iv2Zf+wWn/p0Ws3/AIPNNbk1j9vL9nvw/rM0ieFYdBa4dWJWNDNqHl3DZ6Z8uGLJHIAFd1/wch/s0/Gn
9tL9qv8AZN8ceEfgv8StTjuPDdnc61baXoN5qK+GrmW8ine1u5UhAiaPeQTKsf3GJAwQPtb/AION/wDg
jFrH/BWH9n7w3qXgG6sLb4pfDea4n0iC9m8m31i2nVPPszJ92OQtFEyO3y7lKsVDl1VFSw2HoVJxv7LE
VZSitW1e3zWt+t0na+gc0a+JrRhKyqUKSUtrOzfXZ6W12b1sfopolja6Xo1na2MccVlbwpFbpGoVEjVQ
FAA4AAAwBX5X/wDB43/yiNtf+x60v/0Td15P+zX/AMFiP2/P2afhdovwn8e/sK/Ej4leOPD9smj23iu1
a8trG7EaeXFLdSx2lxbSt8oLypcxq/X5c7qn/wCCv/wK/a+/aw/4INQw/FXwLJ4k+NGofEWDXZPCngfS
zqEug6URMkNuIrbzWl8reNzBpWCuNzsVYjPM4+0g5U3zR5oO/f8AeR073tq+iSeu16y2Xs2oTVnyyTS6
e5L8Lqy63a03t5p/wTE/aj/4KjeDv2A/hbpfwb/Zv+C/iz4X2WipH4c1fVdTt47y/td74klVtbgIbduH
MSdOlfT3/B2Pdarff8EQoZtctbex1ubxFoT6hbwPvit7grIZURsnKq+4A5OQK+ef2A/+Cxv7U37Df7G3
w9+En/DuX9oDxR/wgelLpn9q/Z9Xsft2GZt/k/2PJ5f3sY3t0617x/wXWh+K/wDwUb/4IE6BrGl/BH4h
aL8QvEmtaXql74Bt9NudT1rR1SWZHV4kgSZsDaxJhUhXGVHNdGde/CcqfvL2sNXv8aflutXppZbGWVPk
lCNT3X7Oei2+C3ns9Fr1e58Wft3fs669+wt+zL+wz+318LLV11rwj4M8KaV4zt4sLHexjTYYoJZSBkLN
CZLKVjn5XtwADknq/wBvz44aB+03/wAHJf7C/wARvClw154Z8caB4Y1fTZyuC0Uuo3rbWHZ0JKMvVWVg
eQa/WL9mL9kLT/jf/wAEZfhr8Ffil4fvrW21j4XaT4e17S72Fre7sJl0+FGBVsNHNDKoYZwVeMHqK/Bv
9iH/AIJdftTfs/f8Fl/gP4T8X/DD4hap4J+CfjBLHT/FUHh+4bQV0lb6e+Nwt8EMHlu1xLJgvuVpShAc
bR6XN/wtRoP4Y13Ui+lm5Kcfvakr6WbS2Zy1LyyidaPxSoqnJd7JOD+5ONkt7Nu7R6z/AMFab2Hx7/wd
xfB7SPFj+boGm634Ps7SKcHyvLMkc6oAcgq1xI2RjBLEetf0b1+SP/Bxz/wRF+JH7bPxD8E/H34A3EX/
AAtz4fwRWs2mG8WzuNSignNxaz2s0jCJLiCR3O1yodWGGDIFfmvh9/wXD/b+1vwhb+Bn/wCCf/jG7+Kn
2f7IPE16t9pvhuS5AH7945LdIQh6kC/VSc4ZRwPLwdRLBrCtPnjOo7d1Jppro9tddG0t7pduKhfFe3uu
WUIK99nFNO63W+ndL0v5x/wfDf8AJIP2ff8AsMax/wCiLWvUP2QP2rf+Crj6D8LtNm/Zl+B6/DdrfSbZ
9V/ta3W6Gk7YlNxga4zCTyPn/wBSTn/lmfu14/8A8HH/AOyB+1F+0d/wT1/Zai8ReCfEPxS+LWi3GpSe
NP8AhCNBk1JLK4njiZAYrSM7UVU8suq7C0Z5O4Z9M+E3/BwD+1N8L/hX4Z8M/wDDtH9oC+/4R3SrXTPt
OdXi+0eRCke/Z/Yh27tucZOM4yetVgLUfbxk7tVE7fZklHfzW1tVo38pxl6saEoqy9nLX7UW56LyfV6b
pfP9nqKxPhp4ovPHHw58P61qGj3fh/UNY023vbnSro5n02WWJXe3k4HzxsxQ8DlTwK260qQcJOEt1oTT
mpxU47PUKKKKkoKKKKACvzt/4LrfEDztW+HXhOORtsK3etXEf8JJ2wQt9QDOP+BV+iVfj7/wVh+IP/Ce
ftv+I7eOTzLfwzaWmkJg5UOIhNJj/gUxU+619pwHhfa5qpv7EW//AG39T5bjDEezy5w/maX6/ofONFFF
fuB+SBX1R/wTd/4KAzfstavceF/ES3mo+CdUZ5oI4Spm0y7POYwzKuyU8MpIAYhsj5s/K9BG4YNcWYZf
RxtCWHxCvF/g+jXmjrwONq4Ssq9F2a/HyfkfsXov/BT34UamQLi+1rSznBF1prtt+vl766/RP24vhP4g
2/Z/HGkR7un2kSWv/oxVxX5B+BfFn9vWv2S4bdqFuhIcnm6jUZz7uoHPcqNx5Dsd6vga3AeCvZSkn6p/
ofdUOK8RKKlaL+T/AMz9jdE+Nng3xLt/s7xb4Zv93AFvqkEuf++WNdLDOlzEskbLIjchlOQfxr8Tat6V
r19oMvmWN5d2b5zugmaM5+qkV51TgGP/AC7rffH/AIJ2w4ql9un9z/4B+1NFfkHon7THxE8O7fsfjjxX
Eq9EOqTPGP8AgLMR+ldfon/BQf4vaHtCeMJriMdVubK2mz+LR7v1rgqcB4tfw6kX63X6M6ocU0H8cGvu
f6o/U2ivzh0T/gqx8TtLwLi38L6kO5nsXVv/ACHIo/Suw0T/AILAa1Bj+0vBOl3Xr9mv5LfP/fSPXBU4
NzOPwxUvRr9bHZDiLBS3bXqn+lz7uor5A0T/AIK+eHJ8f2l4P1u19fs11FcY/wC+tldfon/BU74W6rt+
0HxFpmf+fmwDY/79u9cFThzM4fFRfys/yudUM4wUtqi+en5n0hRXj+ift8fCPXseT40somPa5tp7fH4y
RgV1+iftDeAfEm0WPjXwrdM38EeqwF/xXdkflXBUy/FU/wCJTkvWLX6HVDF0J/BNP0aOxoqGw1K31SAS
2txDcRHo8Th1P4ipq49tGdAUUUUAFFFFABRRRQA2aZLaFpJGWOOMFmZjhVA6kmvwN+J3jl/ih8UfFHie
RWVvEms3mqBCc+Ws07yKn0VWVR7KK/aD9uD4h/8ACrP2R/iFrSttlh0WeCE5wfNmHkpj33SDFfiDBF5E
Kp/dAFfq/hvhbU62JfVqK+Wr/NH5zx1iLzpUF0Tb+ei/JjqKKK/TT4EKKKKAH29xJZ3Ec0MjRTQsHjdT
hkYHII+hr0nw14ij8TaZ56qsdxGQtxEvRGPRl/2G6j0OV7At5nVvQ9bm8PanHdW+1mXKujfdmQ9Ub2P5
ggEYIBGNalzrTc6MPiHTlrseo0VDp+oQ6vYRXVszNbzZxu+8jD7yN/tLkZ9QQRwwJmrzT3E01dBRRRQA
UUUUAFFFFABRRRQBLZ302nXAlt5pYJV6PG5Vh+IrqdE+P3jrw3t+weMvFVmq9Fi1WdV/753YrkamsLC4
1W/gtbWCa6urqRYoYYUMkkzscBVUckk8ADk1nUpU5r94k/VFwqTi/cbXoeraL+3n8W/DwXyfG2oSBf8A
n5gguc/9/Eavuj9jPV/i3408Nf298RrqztbO8iBsNP8AsCwXjg4IllK4CAjom3cc5O3GD53+xH/wTxg+
G5s/F3ju2hu/EagS2WmNiSDSj1Dv2eYduqoeRlgGH1pX5TxLmuBm3h8FSj5zUV90f8/u7n3WS4HFRSrY
mcvKN3+P+X39gooor40+jCiiigD41/4LcfET/hHP2YtE8OxShZvFWvwpLHnlre3R52P4Srbj/gVflzX2
p/wXB8f/ANu/H3wj4bSRWj8O6NJduo6pLdSgHP8AwC3Q18V1+9cF4X2GU0+8ryfzen4JH47xViPa5lPt
Gy+5a/i2FFFFfVHzoUUUUAFFFFAGx4O8Ut4av28ze9jcECdFGWXHSRR/eXJ4/iBI4yCPRAVZVZWWRHUM
jocq6kZBB9COa8jrqPh94sFk66bdSKtvI/8Ao8jnCwOT90nsjH14VjngM5rlxFG/vx3O7B4jlfJLY7Si
lZSjFWVlZTggjBBpK4T1gooooAKKKKACiiruhaDceIbzyYFwq4MkjfciB7k++DgdTilKSSuxpNuyINO0
6bVrxbe3jMkjc47ADqSewHqa/R39gX9jzQfhL4G0fxneKmq+Kte0+K7S4kT5NNimjDeVCp6NtbDOfmPI
GFJB+I7TR7fw1ok0dupz5ZaSRh88rAHk+g64XoM9zkn9V/AGkf8ACP8AgTRNP27fsNhBb49Nkar/AEr4
HjTMqkaEaVN2Um7+aX6a7H1fDuCg6rqTV3G1vK/6mtRRRX5kfaBRRRQAUUVl+NvFdv4E8Gavrl5u+yaN
ZTX0+OuyJGdv0U1UYuTUVuxSkkrs/Gf/AIKE/EP/AIWb+2r8RL9W3Q6fqZ0aH/ZFmot3H/f1JT+NeN06
41W4167n1C8kaa81GZ7u4kbrJLIxd2P1Zifxptf01hMOsPQhQjtFJfcrH4Fiq7rVp1n9pt/e7hRRRXQY
hRRRQAUUUUAFBGRRRQB3fgLxX/bFsLG5bN5bp+6cn/j4jUdD/toB+KjPVSW6GvJYZpLaeOSOR4pYmDo6
HayMDkEHsQQCDXpHhfxInifTjLhI7qHC3ESjABPR1H9xvb7pyOBtLefiKPK+ZbHrYPEcy5JbmlRRRXOd
wUUVveE/Bj62VuLjdFZ/w44af/d9F9W/AZOcTOairyKjFydkVfDPhWbxHNu/1NrGcSTEd/7qju36DIz1
Ge+0/T4dKs0t7ePy4Y+g6lj3Ynux7n8sDAEkMKW8KRxosccY2oijCqP89+pPJyTmnV5das5vyPRpUVBe
ZJY2X9p6ja2uM/ap44ceu5wv9a/VdE8tFUfwjFfmJ8JdN/tn4s+FbXGfO1i0GPpKp/pX6eV+fcZS9+lH
yf42/wAj6vh+Puzl6fqFFFFfFH0QUUUUAFfP/wDwVC+IX/Cu/wBiHxtKkhjuNXhi0iAg8lriVY2x/wAA
Ln6A19AV8Ff8F1viE1p4E+HvhGNv+QpqdxrE+G5C20IiQEejNdEj3i9q93hnC/WM0oU/7136R95/keRn
2I9hl9Wp5W+b0/U/ORRtXA7cUUUV/Q5+JBRRRQAUUUUAFFFFABRRRQAVa0fV59B1GO6tyvmR8FW+7Ip6
qw/un25HUEEAirRQ0mrMabTuj1XTNTg1nT47q2LeTLkYY5aNhjcjf7QyPTIIPQipycCuH+GA1WfXXg0z
TdQ1aOVQbq3s4GmkCA4EgA6FcnBOBgkEgEke6aN8NJPC2oN/asatfRH5IvvJGOzf7RPUdhjufu+LipRo
y5W/TufQ4Pmrxvb17GZ4T8CecEutQQiM4aK3PBkHXc/ovTA6nvgY3df/AEAAAGAAOAAPQDjFBO45PJPJ
J70V5NSpKbvI9enTUFZBRRRWZZ3f7L2nNqn7RngyNf4NSWY/8AVn/pX6Q1+ff7Dtkb39qLw4du5beO7m
b2H2d1B/NhX6CV+d8YSvioR7R/Vn1mQx/cSfn+iCiiivkz3AooooAK/Jn/gsj49/4S79sg6WrbovC+i2
1ngNkCSUtO344dB+Ar9Zq/Cf9pz4ir8XP2kfH3iaOTzrfVteumtZM/fto5DFAfxijjP41+geHeF58dOu
9oR/Fv8AyTPi+NsRyYSFFfal+CX+bRw9FFFfsh+XhRRRQAUUUUAFFaHh3wrqni+9a20nTr7UrhRuaO1g
aZkXpuIUHA9zxXrXgn9hvxTrzK+sXFjoMG4hlLC6uAMZDBUOwg+8gI9K5sRjKFD+LJL8/u3OrD4OvX/h
Rb/L79jxWr/h3wtqfi69a20rT77UrhV3NHawNMyL03EKDge54r658D/sa+DfCRjlvLe51y6Ta269k/dK
467Y1wpU/wB2TfXqGl6Va6Fp8dnY2tvZWkOfLgt4liijz12qoAH4CvCxHEtKOlGLfm9F/n+R7mH4aqS1
rSS8lq/8vzPlDwT+w54q191fWLix0C33EMrMLq4AxkMEQ7CD6GQEelev+B/2NPBvhPy5byC5126Xa268
kxErjrtjTAKn+7Jvr1iivBxGdYuto5WXZaf8H8T3sPkuEo6qN33ev/A/Ar6XpNroWnx2lja21jaRZMcF
vEsUUeeuFUAD8BWX448IL4osQ0e1b63B8licbx1KE+h7E9D6AmtyivOjUlGXOtz0pQTjyvY8UZWjdlZW
RlJVlYYZSOoI7EelJXefEvwb9rjbUrVP30YzcIB/rFH8Y9wOvqOeoOeDzXuUayqR5keTUpuErMKKKK1M
z3X/AIJ02S3f7RlxIyk/ZdBupFPoxntlH6M1fc9fG3/BMzS/tHxH8V32P+PTTYIM+nmyu3/tGvsmvzHi
qV8e12S/K/6n2WSxthU+7f8AkFFFFfOnrBRRRQBxP7SHxH/4VD8AfGXiZZFhm0XR7m6gY9BMI28v832j
8a/B+wg+y2MMf/PNAv5Cv1s/4LH/ABBPgz9jC806OTZN4r1a00lR3ZctcSD/AL4gYfjX5M1+yeHeF5MD
Urv7crfKK/zbPy/jfEc+LhRX2Y/i3/kkFFavg7wNrfxD1ldN0DR9U1zUGGRbWFq9xLj12oCce/Svpn4N
/wDBHr4qfEUw3GvDS/BWnyYJN9KLi62nusMRIz7O6GvscdmmEwaviaij6vX5Ld/JHy+Fy/E4l2oQcvRa
ffsj5RrQ8N+E9U8Y3rW2k6dfalcIu547WBpWRc43NtBwPc8V+o3wv/4I1fDPwTYK+s3ut+JtUUA+fOyQ
20bjusABBB/uyM4rpNa/Yn1Dwjp62/hqTTZ7CDPlWiRCz8sHnCqPk/VfpXytTjzAOXJQ183ov69bH0tH
g3FW5q7t5LV/16XPzv8ABP7DfijXmWTWLmx0GAkhlLC6uBxkEKh2EH3kBHpXsHgf9jbwb4SMc11b3GuX
SbW33sn7pWHXEa4Uqf7r7/rXtXibwTrHg2fy9U028sTnaGljIRj/ALLfdb8Cay6462eYnEK6nZf3dPx3
/E9OhkuFoP4bvz1/Db8Cvpel2uh6fHZ2Nrb2dnDny4LeJYoo88naqgAfgKsUUV5jberPUWisgooooAKK
KKACiiigAB2nI4I6H0rzn4h+DP7CuPtlqmLKZvmRRxbue3sp7dgeOPlz6NUdzbR3lvJDNGskUilXRujA
9q2oVnTldGVampxseL0Vq+LvC0nhXU/L+aS3ly0Eh/iHcH/aGRn14PGcVlV7kZKS5onlSi4uzPrL/gmJ
p+3TvGl5j/WT2kGf9xJG/wDalfVVfOf/AATT037P8I9cusf8fWsMM+uyKMV9GV+U8QS5swqPzS+5JH22
VxthYL+twooorxz0AooooA+YP+Chv7Fnir9tLxB4H0/S9Y0vQvDvh/7Zc6hPdb5ZJJpfJSLy4VA3FEWb
O51H70YPWs34N/8ABHb4WfDvy7jxAdU8a3ygE/bZjb2gYd1hiIOPZ3cV9Y0V7VPiHH08LHB0ajjCN/h0
erbd3v17nlzyXB1MQ8TVhzSdt9VorbbdOxk+DPAWh/DnRl03w/o+l6Hp8fK21hapbxA+u1ABn3rWoorx
5SlJ80ndnpRioq0dgoooqShlxbx3cDRzRpLG4wyOu5WHuK4Txd+zT4T8Vh2WxbS7hufNsm8vH/AOU/8A
Hc131Fa0q9Sk705NehE6cZq0lc+cfFv7HWsabvk0e+tdSjHIil/cS/QdVP1JFeY+JvBGseDJ/L1TTbyx
OcBpYzsY/wCy33W/AmvtymXFvHdwNHLGkkcgwyOu5WHuK9ihn1aOlRKX4P8Ay/A4qmW038DsfCVFfWXi
79mrwn4sDuth/Zlw3/LWybysf8A5T/x3PvXl/i79jrWNN3SaPfWupRjkRSjyJfoOqn6krXs4fOsNU0b5
X5/5nn1MBVjtr6HjtFavibwPrHgyby9U028sTnAaSM7G+jfdP4E1lV6kZKSvF3RySi07MKKKKoQUUUUA
U9e0SDxFpklrcZ2t8ysBlo2HRh7jJ+oJHevJ9X0mfQ9RktbhQssR6j7rjsw9j/8ArwQRXslYvjbwkvin
Ths2reQZMLnjPqhPof0PPTOezC4jkfLLY5sRR51dbn0z/wAE9NONj+zlbyH/AJfNRuZh7/ME/wDZa9xr
yz9irTZNJ/Zj8LxTRtFMY55HVhhgWuJW5HrgivU6/N82nzY2q/7z/M+rwMbYeC8l+QUUUV551BRRRQBz
Hxs8fS/Cn4M+LvFEFvHeTeG9FvNVjgdiqzNBA8oQkcgErjI9a/BD9iH/AIO//jZ8Rv2k/h7p3xa+Hfwr
sPhf4y8Qp4dutW0Ozv7K40+R2hVphJNdzxssIuIndDGCynhlNfuh+2J/yaP8U/8AsUNW/wDSKav5Vf2a
/wBj8/tG/wDBu78bPGWn2pm174PfEy18QRsi5k+xSWMFvdr/ALoV45T7W9ctHEezxNWpUXNCnGnJrbSV
Rxlr00d2+lum5vUpc9CnSg+WVSU4p9bqHNH110t1uf10axq9toGk3V9eTR29nZQvPPK5wsUaAszE9gAC
a/nf8Rf8HiPx21r9pG3Xwr8M/havwj1rxc+jaLcalYag2qXdnHNCr7p0vFiE/lTxOcQlUMqjD4yfaP2s
f+C1yeKv+DWnw/4us9UuI/iN8RbGP4X3LLJtnjvolMWoTMVOV32kUkgI5Buos4zXwT/wUy/Y9/4Yk/Zh
/wCCdvhO6tTa69q1nqHiXXFZdsgvb+9024ZH/wBqKN4ofpCK9LC0bZoqU3zU41IU/wDE5Jzv/h5Ipp/3
uvTgxVf/AITJVYaVHCc/8KjaP388mn/hv6/1aTzpbQvJIyxxxqWZmOAoHUmv58dW/wCDxL4oad+2sbNf
APw6b9n3/hNX0SPWTp+of2pNpkc6o8y3P2r7OZxC6zbfJIAdQRyGP6ff8HA/7a//AAwr/wAErfiV4ks5
/J8R+JrUeE9BxJ5bi7vg0RkU/wB6KDz5gO/k446j8m/if/wSFj0z/g0t8N+KrfT0k8c6XqCfF64kjUGS
SzugIHTP9xdPaCZh6wVwU63JOeKkr06XImujcpJtPsowTlfbVo9B0lKMKC0nU5rPqlGLSa6Pmm1H5H9G
Vpdx39pFPDIssMyCSN1OVdSMgg+hFfgB8KP+Dv74oWn/AAUAXwf8RvAnwz0/4Px+MJfDt/qWnW99DqWl
2zXDwRXD3Et08DGMASOPJUOqPt2dR+kv/Bu/+2rH+2//AMEqPhzrFxdPceIvBlv/AMIfrpdt0n2qyRER
2OeTJbtBJk95DX4k/wDBOj/gm6v/AAU6+Cv7f/gzT0UeNvDviXTfEnhOQj72oW9xrYEB5HyzxPLDk8KZ
FfB2AV0YmP1bHO/vQhCU2v5oqdJX7/BJtW17anPh37fA3fuzlKEb/wAsnzK3opJX6aH75f8ABY/9uPxJ
/wAE7f8AgnR48+MHg3TdB1rxD4b+wrY2+rpLLYubi8gty0ixSRuwCykgK65IHOK3v+CVH7WviD9uv/gn
v8L/AIteKrDR9L8Q+NNMku7620qOSOyikS4lh/dLI7uqkRg4Z2Iz1Nfi/wCI/wDgotN+3B/wad/FDwr4
mupW+JPwVudD8La7Fcki6ntk1O1FlcuG+bLRI0TFuTJbSk9a/TL/AIIO/EPSvhF/wQM+EPizXblbPRPD
PhLUNV1C4Y/LBbwXV5LI5+iqT+FXKMKMMTUnK8YShZ/3HTcr281Z9+hnFzqTw8Iq0pKomv70ZQVvld29
bnyh/wAFzv8Ag5T+Kn/BPb9ta++FHwZ8H/D/AMUW/hHQrbUfFN7r2n3189lcTkMqD7NcwrHGsctvln3Z
adRkcA/pZ/wTQ/bQtP8AgoR+wz8Ofi5b29rZXHi3SxJqNnbMWisr6JmhuoV3Zbas0bhdxJ27ck9a/HL/
AIIOfsmr/wAFhpv23vjt8QLaOOb42Lf+CdLMjecdJN0oupNpx/y7g6cEOB/qq7r/AIM4v2oL/wAIWPxl
/Ze8W+dZ+JvAerTa/ZWczDdCokWzv4Rzx5dwkJwO87GjB05KDw1dfvXCNT723KC7qMHGTfoisZUjze2p
fApum+zVklL1lNSXbfyZ9uf8Flf+C7Hw3/4JL6Ppegahod58RPib4qt/P0vwlZTLCPILlBPdTFX8qJmD
KgWOR3ZSAuAzL8Qal+0x/wAFNPitoh8baf8AsS/DrRvCdxGbyKxFy1jrqwYyEa2l1RZfN9vsQc9Nma8q
/ZzsIf2sf+DyXxnN4+X+0B4G1XU5dFtLslkibTbQRWexTj7mBOAAfmXd7199/wDBT/8A4LnfF7/gnf8A
HPxToej/ALG/xI+J3w+8K6dBqVz4+s769s9GEbQLLMXlXTJ4Y1hJKsxmIG0k7elY4TFypYaliudqVVOS
/lUdbX89He7t2etlpXoqpiKmHUbqlaL7uWl7eWqtZX7rS75P9l39onxT+09+wJ8Svi4/w/1b4f8Aiv4V
/wBrWWu+EPEglhubW9sbNbooGaONmRkkjzuSNgSwwcAn86v2Vf8AgrV+3V+214W1bWvhj8GvhD4m0vQ7
pLK+uMSWSwTMu9U/0jVIySV5+UEV+rH7Mv8AwVIj/wCCuP8AwRj+OnxPXwO3w/ax0XxJoT6YdY/tUMYd
L8wSibyYfvCbG3Zxt6nNfjr/AMG7X/BTr4tfsH/BL4kaJ8O/2TfiN+0Zp3iLWre7vr/w4155OlOsBQQS
iDT7pSzL8w3Mpx2PWvW/tbEPF1KdduKjTpySj1cm7u9nZNa26aK9zg+p0lhoTo+9zVKkW30UVoul2npf
rvY/Qj9lv45ftGn9nn4jeJvj78P/AAf4L8ReG7ae90Sz0e4WaC+iitnkJlKXlzj94oX7ynHbvXxB+yt/
wWC/bg/bZ0fWtQ+GPwf+D/ie18Oyxw6g4EtmYHkVmQbbjVIy2QrfdB6fSv1/8GeJbj9uj/gl349+I3jn
4H+Jv2ffFk2g69E/hjU3mju4Fht5gkrLLbwHbIBuGYFPXBIwx/n2/wCCN37enxC/Yd+DHxU1Twr8A/GH
xZ8O+dbX2t65pj3MVh4aWKKXBupI7SdEVgWbLunCHr1HX/a1OeLlTqVJQjCnB9N23q2k1qlrtr22Mfqc
1QhOEVJynJfJJaLbZ7b6d9z9Df8Agmp/wWY1n9p/9oLUfgt8WvAq+Afilpq3G1bTzFtLqWD5pYDFIWeG
RUDOCXdXCt8wO0N9+V+Rf/BFb4N6x+3Z+234w/a+8U6r4bgmt7ye2h0DS3Mk9hczQG3jM4Yfu4xbBghJ
LSnLcBSD+ulfSYGdWeFpzr/G1d/PVbabW2/M8rEcirzVL4U7L9fuf43XQ9q/Zc+Nv9jXEPhfVZP9FmbG
nzMf9S5/5ZH/AGT/AAnseO4x9DV8Hnmvpn9mr43/APCc6Yui6pPu1qzj/dyOeb2IfxZ7uO/c9fXHgZ1l
tv8AaKS9V+v+f3np4DFX/dT+X+R6vRRRXzZ6oUUUUAed/tfRNcfsmfFCONWkkk8I6sqqoyWJs5cACvx9
/wCDN74caX8XP+Cbn7QHhXXrUXmheKPE0mk38Dj5bi3n0uKKVPxVyPxr9xqKzhRgpVnPVVYKDXZKTlfz
ve3TvcqVSTVLl0dOTkn5uNvw3P5AP2Dv+Ce3jD4sf8FffDf7Ivi641PUPBvw7+IOpahrumOWWzMNrsF3
c7R0+0wWdvGH9JEx15/Q7/g8QsJJf2uP2QYreFmzc38UaRpnJN7poVQB3PYV++NFdFGrKH1ZvV0Zc7f8
zty/LRLva33ZYinGqsQloqsXFL+VN83z1eu1z8Fv+DqXxpq37a3/AAUQ/Zr/AGRfDT3TNqF3DquqLCOB
Nfz/AGaJzwcGC3huZCcEBZya9on/AODKj9lswv5fxA+PqybTtLa1pLKD2yP7NGR+Ir9gaK56VOMKLp/a
cpNy6tO1l/26lZPt2NqlRzqKXRRikuite7/7ebuz+fX/AINMviZrX7Hf/BQz9oL9lPxXJMlwsk93bIwI
Rb/S7g205Uf9NoJVfPQrbr7V6J/waI2c1r+1D+2x5kUkf/FTafH8ykfMt3q+5fqMjI7ZFfuNRXRTqSTj
OprJU3Tb2veUHzeVlBRt266GNSmnGpThpGVRTS7Wv7q9W22+7eh/Mj/wcufsd+JP+Can7TvxI8YeA9Pu
Y/hH+1dpQttcjVG+x6dq0d/b380fyjYrvLbLNHu5InuVXhTj279p79qq8/ZT/wCDPX4P+G4ftNjr3xcs
18LwAoUdbOW8urq5fB/gktojHnuLkEcHNf0AUVyxo2wUsFfRyi15Ri5Pkt1TUmvTSzOn2v8AtUcUlqlK
67zkorn8n7kXbW7102Pwm/YO/wCDPn4K/G39jb4beMvid4r+M2i+OvFeg2+r6tYaTqmnW9pZPOvmpEqS
2EkilY2QMGdjuDduB82W/wCzrZ/8G5n/AAcefCfSfD+qeI9Q+GPi1bK0hvdXkilurjT9SDWNwJnijjRz
BdAy4VF4jj4J5P8ATZRXb7blxccRTVoqTbj0cXdON/nvbb1OP2N8NKhPWTikpdVJW971077630Pwz/4L
Wf8ABOT47fsX/wDBUDQ/24f2aPCt/wCOGEkV54p0Owt3vLmC4WIWs5a2QmWW1ubY7XMKlomEjnaNrDD/
AG4v+Dqr4X/tc/sLfEj4OQfB/wCMmh/Fbx94ZvPDx0uWxtJrKwup4WQ/vROLh1XOf+PZWOPujrX70UVx
Kj+4+qzd6etl1Se6T7dlbTp1v1e0tXWKjpPS/Z22bXfu769T8a/+CDP7O3j74I/8G73xx0Xxl4L8UeFd
a16PxRfafp2q6bNZ3l3BJpEUcciwyKJNrsjBTt+bGRkEGvz9/wCDdP8A4LwfCH/gkX8F/iN4d+JHhz4k
a3feL9at9Ss38NafZXMUUccBjYSG4u4CGz0ChhjuOlf1LUV1TqSeInXX24Qhbyhs7+en9M54U4qhCi/s
znO/nPfTy1PhD9m7/grv8N/+Cv37Cvx91r4Z6D480e38I+H7/TruLxJp9vbyTyzafO6eV9nuJ1YYUggs
GBI4wQT8Mf8ABkNpgvfgH+0Ktxb+bZ3WtaTCwkTdHKPs9zuU54PDDI9GHrX7rUVFNQhUqzS0qQjBrtyy
5m/O76dO7HUU5wpRb1pzlK/rHlS+S69eyP5xf2LrWb/ghn/wc2698IpIZrX4V/GS+/sbT4GjYQNZ6i3n
aWUUnD+RckWpc5+XzuMnFfv94t/Zt8J+LNzf2f8A2bO3/LWxbyf/ABzBT/x3Nd5RWuHxFWjQp0Yyd4Jq
/dXuk13V3d9b7KwV6UKleda2k7Nr+9aza8nZWXS3XVnzn4u/Y51bTt0mj6hbalH1EUw8iX6A8qfqStec
6l4Y8RfC7WYLq4s77Sbq1lDwzsnyBh6OMq30BOQa+0qbLEtxE0ciq6ONrKwyGHoRXrUc+rR0qpSX3f8A
A/A4qmXQesHY5H4L/Fm3+LHhVbkBIdRtcR3tuD/q3/vD/ZbqPxHUV2Fc7p3wp0PRPEq6tptmumXoBRza
Hyo5kPVXQfIRnB6ZyAc10VeTiHTc70rpPo+nkdlPnUbT3CiiisTQKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/Z
</value>
</data>
<data name="TextBoxDescription.Text" xml:space="preserve">
<value>Descrizione:
(In fase di esecuzione il testo dell'etichetta verrà sostituito con le informazioni sull'assembly dell'applicazione.
Personalizzare le informazioni sull'assembly dell'applicazione nel riquadro Applicazione di Creazione progetti.)</value>
</data>
</root>
-26
View File
@@ -1,26 +0,0 @@
Public NotInheritable Class AboutBox
Private Sub AboutBox_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Imposta il titolo del form.
Dim ApplicationTitle As String
If My.Application.Info.Title <> "" Then
ApplicationTitle = My.Application.Info.Title
Else
ApplicationTitle = System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyName)
End If
Me.Text = String.Format("Informazioni su {0}", ApplicationTitle)
' Inizializza tutto il testo visualizzato nella finestra di dialogo Informazioni su.
' TODO: Personalizzare le informazioni sull'assembly dell'applicazione nel riquadro "Applicazione"
' della finestra delle proprietà del progetto (accessibile dal menu "Progetto").
Me.LabelProductName.Text = My.Application.Info.ProductName
Me.LabelVersion.Text = String.Format("Versione {0}", My.Application.Info.Version.ToString)
Me.LabelCopyright.Text = My.Application.Info.Copyright
Me.LabelCompanyName.Text = My.Application.Info.CompanyName
Me.TextBoxDescription.Text = My.Application.Info.Description
End Sub
Private Sub OKButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OKButton.Click
Me.Close()
End Sub
End Class
+16 -23
View File
@@ -1,12 +1,11 @@
<Window x:Class="AboutBoxWD"
<Window x:Class="AboutBoxV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
FontFamily="./Resources/Fonts/#Century Gothic"
Title="AboutBoxWD" Height="469.15" Width="511.8" WindowStyle="None" ResizeMode="NoResize"
AllowsTransparency="True" Background="Transparent" ShowInTaskbar="False">
Title="AboutBoxWD" Height="320" Width="300" WindowStyle="None" ResizeMode="NoResize"
WindowStartupLocation="CenterOwner" ShowInTaskbar="False">
<!-- Definizione dell'AboutBox -->
<Border>
<Border BorderThickness="2" BorderBrush="LightBlue">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
@@ -20,12 +19,10 @@
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="0.35*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.25*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.25*"/>
<RowDefinition Height="0.35*"/>
</Grid.RowDefinitions>
<Grid Grid.Column="1" Grid.Row="1">
@@ -35,23 +32,19 @@
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Border Name="LogoBrd" Grid.Column="1" Background="White">
<Image Source="Resources/LogoLicenceManager.jpg" Stretch="Uniform"/>
<Image Source="/Resources/LogoLicenceManager.ico" Stretch="Uniform"/>
</Border>
</Grid>
<TextBlock Name="DescriptionLbl" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Center"
VerticalAlignment="Center" FontSize="18" />
VerticalAlignment="Center" FontSize="18" />
<TextBlock Name="VersionLbl" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Center"
VerticalAlignment="Center" FontSize="18"/>
<TextBlock Name="KeyLbl" Grid.Column="1" Grid.Row="5" HorizontalAlignment="Center"
VerticalAlignment="Center" FontSize="18"/>
<TextBlock Name="MachineLbl" Grid.Column="1" Grid.Row="6" HorizontalAlignment="Center"
VerticalAlignment="Center" FontSize="18"/>
<TextBlock Name="ProjectLbl" Grid.Column="1" Grid.Row="7" HorizontalAlignment="Center"
VerticalAlignment="Center" FontSize="18"/>
<TextBlock Name="CopyrightLbl" Grid.Column="1" Grid.Row="8" HorizontalAlignment="Center"
VerticalAlignment="Center" FontSize="15" />
<Button Name="ExitBtn" Grid.Column="1" Grid.Row="10" IsCancel="True"
Margin="1,0"/>
VerticalAlignment="Center" FontSize="18"/>
<TextBlock Name="CopyrightLbl" Grid.Column="1" Grid.Row="5" HorizontalAlignment="Center"
VerticalAlignment="Center" FontSize="12" />
<TextBox Name="InfoLbl" Grid.Column="1" Grid.Row="6" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" FontSize="12" IsReadOnly="True" TextWrapping="Wrap"/>
<Button Name="ExitBtn" Grid.Column="1" Grid.Row="8" IsCancel="True"
Margin="1,0"/>
</Grid>
+31
View File
@@ -0,0 +1,31 @@
Imports EgtUILib
Public Class AboutBoxV
Private Sub AboutBoxWD_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
Me.Owner = Application.Current.MainWindow
DescriptionLbl.Text = My.Application.Info.Description.ToString()
VersionLbl.Text = "Version : " & My.Application.Info.Version.Major.ToString() &
"." & My.Application.Info.Version.Minor.ToString() &
(ChrW(97 - 1 + My.Application.Info.Version.Build)).ToString() &
My.Application.Info.Version.Revision.ToString()
CopyrightLbl.Text = My.Application.Info.Copyright.ToString()
Dim sInfo As String = String.Empty
Dim sKey As String = String.Empty
EgtGetKeyInfo(sKey)
Dim sKlev As String = Map.refMainWindowVM.MainWindowM.nKeyLevel.ToString()
Dim sOpts As String = Map.refMainWindowVM.MainWindowM.nKeyOptions.ToString()
Dim sLeftDays As String = ""
Dim nLeftDays As Integer
if EgtGetKeyLeftDays( nLeftDays) AndAlso nLeftDays < 500 Then sLeftDays= " (" & nLeftDays.ToString() & ")"
sInfo = sKey & " - " & sKlev & " - " & sOpts & sLeftDays & Environment.NewLine
sInfo &= "User " & Environment.MachineName & "\" & Environment.UserName & Environment.NewLine
sInfo &= "DataRoot " & Map.refMainWindowVM.MainWindowM.sDataRoot & Environment.NewLine
Dim sScene As String = String.Empty
EgtGetSceneInfo(sScene)
sInfo &= sScene
InfoLbl.Text = sInfo
ExitBtn.Content = "Ok"
End Sub
End Class
-42
View File
@@ -1,42 +0,0 @@
Imports EgtUILib
Public Class AboutBoxWD
' Riferimento alla MainWindow
' Private m_MainWindow As MainWindowVM = DirectCast(Application.Current.MainWindow, MainWindowVM)
Sub New(Owner As Window)
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Me.Owner = Owner
Me.Top = Owner.Top + (Owner.Height / 2 - Me.Height / 2)
Me.Left = Owner.Left + (Owner.Width / 2 - Me.Width / 2)
Me.ShowDialog()
End Sub
Private Sub AboutBoxWD_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
DescriptionLbl.Text = My.Application.Info.Description.ToString()
' VersionLbl.Text = "Version : " & m_MainWindow.GetVersion()
Dim sKey As String = String.Empty
EgtGetKeyInfo(sKey)
' Dim sOpts As String = m_MainWindow.GetKeyOptions().ToString()
#If TRIAL Then
If sKey.Length() <= 14 Then
KeyLbl.Text = sKey & " - " & sOpts
Else
KeyLbl.Text = sKey.Substring(0, 9) & "..." & sKey.Substring(sKey.Length() - 5) & " - " & sOpts
End If
#Else
KeyLbl.Text = sKey & " - " ' & sOpts
#End If
CopyrightLbl.Text = My.Application.Info.Copyright.ToString()
'MachineLbl.Text = "Machine : " & m_MainWindow.m_CurrentMachine.sMachineName
'ProjectLbl.Text = "Project : " & m_MainWindow.m_CurrentProjectPageUC.GetCurrentProjectName()
ExitBtn.Content = EgtMsg(MSG_MISSINGKEYWD + 4) 'Ok
End Sub
End Class
+2 -27
View File
@@ -25,21 +25,11 @@ Module ConstGen
' Abilitazioni licenza
Friend Enum KEY_OPT As UInteger
CUT_BASE = 1
MAN_MANIP = 2
AUTO_MANIP = 4
MAN_PHOTO = 8
AUTO_PHOTO = 16
AUTO_NESTING = 32
ENABLE_MILL = 64
PROCUCTION_LINE = 128
OFFICE_BASE = 256
VM_MULTI = 512
UNDER_CUT = 1024
BASE = 1
End Enum
' File di log generale
Public Const GENLOG_FILE_NAME As String = "LicenceManagerLog#.txt"
Public Const LOG_FILE_NAME As String = "LicenceManagerLog.txt"
' Sottodirettorio di configurazione
Public Const CONF_DIR As String = "Config"
@@ -47,20 +37,5 @@ Module ConstGen
Public Const RES_DIR As String = "Resources"
' Sottodirettorio temporaneo
Public Const TEMP_DIR As String = "Temp"
' Sottodirettorio per Db
Public Const DATA_DIR As String = "Data"
' Sottodirettorio per Cam automatico
Public Const CAMAUTO_DIR As String = "CamAuto"
' Sottodirettorio per Csv automatico
Public Const CSVAUTO_DIR As String = "CsvAuto"
' Sottodirettorio per Img automatico
Public Const IMGAUTO_DIR As String = "ImgAuto"
' Sottodirettorio di default per il salvataggio con nome
Public Const SAVE_DFL_NAMEDIR As String = "MyProjects"
' Sottodirettorio di default per le macchine
Public Const MACHINES_DFL_DIR As String = "Machines"
' Nome file Lua con le funzioni di attrezzaggio
Public Const SETUP_LUA As String = "SetUp.lua"
End Module
+5 -135
View File
@@ -1,12 +1,12 @@
'----------------------------------------------------------------------------
' EgalTech 2015-2015
' EgalTech 2018-2019
'----------------------------------------------------------------------------
' File : ConstIni.vb Data : 12.02.15 Versione : 1.6b3
' Contenuto : Modulo costanti sezione e chiavi per file Ini.
' File : ConstIni.vb Data : 06.03.19 Versione : 2.1c1
' Contenuto : Modulo costanti sezione e chiavi per file Ini di LicenceManager.
'
'
'
' Modifiche : 12.02.15 DS Creazione modulo.
' Modifiche : 06.03.19 DS Creazione modulo.
'
'
'----------------------------------------------------------------------------
@@ -16,26 +16,13 @@ Module ConstIni
Public Const INI_FILE_NAME As String = "LicenceManager.ini"
Public Const S_GENERAL As String = "General"
Public Const K_DEBUG As String = "Debug"
Public Const K_LICENCE As String = "Licence"
Public Const K_USERLEVEL As String = "UserLevel"
Public Const K_MAXINST As String = "MaxInstances"
Public Const K_INSTANCES As String = "Instances"
Public Const K_COMMANDLOG As String = "CommandLog"
Public Const K_MESSAGESDIR As String = "MessagesDir"
Public Const K_MESSAGES As String = "Messages"
Public Const K_WINPLACE As String = "WinPlace"
Public Const K_CSVWINPLACE As String = "CsvWinPlace"
Public Const K_MMUNITS As String = "MmUnits"
Public Const K_LASTPROJ As String = "LastProj"
Public Const K_AUTOLOADLASTPROJ As String = "AutoLoadLastProj"
Public Const K_IMAGEDIR As String = "ImageDir"
Public Const K_EXPORTDIR As String = "ExportDir"
Public Const K_CONTOURFROMCAMERA As String = "ContourFromCamera"
Public Const K_SUPPORT As String = "Support"
Public Const S_KEYGENERATOR As String = "KeyGenerator"
Public Const K_PATH As String = "Path"
Public Const K_DATADIR As String = "DataDir"
Public Const S_CONNECTION As String = "Connection"
Public Const K_SERVER As String = "Server"
@@ -44,121 +31,4 @@ Module ConstIni
Public Const K_UID As String = "Uid"
Public Const K_PWD As String = "Pwd"
Public Const S_LANGUAGES As String = "Languages"
Public Const K_LANGUAGE As String = "Language"
Public Const S_LUA As String = "Lua"
Public Const K_LIBSDIR As String = "LibsDir"
Public Const K_BASELIB As String = "BaseLib"
Public Const S_GEOMDB As String = "GeomDB"
Public Const K_DEFAULTFONT As String = "DefaultFont"
Public Const K_NFEFONTDIR As String = "NfeFontDir"
Public Const K_DEFAULTCOLOR As String = "DefaultColor"
Public Const K_SAVETYPE As String = "SaveType"
Public Const S_OPENGL As String = "OpenGL"
Public Const K_DOUBLEBUFFER As String = "DoubleBuffer"
Public Const K_COLORBITS As String = "ColorBits"
Public Const K_DEPTHBITS As String = "DepthBits"
Public Const K_DRIVER As String = "Driver"
Public Const S_SCENE As String = "Scene"
Public Const K_BACKTOP As String = "BackTop"
Public Const K_BACKBOTTOM As String = "BackBottom"
Public Const K_SHOWGFRAME As String = "ShowGFrame"
Public Const K_MARK As String = "Mark"
Public Const K_SELSURF As String = "SelSurf"
Public Const K_SHOWMODE As String = "ShowMode"
Public Const K_CURVEDIR As String = "CurveDir"
Public Const K_SHOWTRIAADV As String = "ShowTriaAdv"
Public Const K_SHOWZMAP As String = "ShowZmap"
Public Const K_TEXMAXLINPIX As String = "TextureMaxLinPixels"
Public Const K_ZOOMWIN As String = "ZoomWin"
Public Const K_DISTLINE As String = "DistLine"
Public Const S_GRID As String = "Grid"
Public Const K_SHOWGRID As String = "ShowGrid"
Public Const K_SHOWFRAME As String = "ShowFrame"
Public Const K_SNAPSTEP As String = "SnapStep"
Public Const K_SNAPSTEPINCH As String = "SnapStepInch"
Public Const K_MINLINESSTEP As String = "MinLineSStep"
Public Const K_MAJLINESSTEP As String = "MajLineSStep"
Public Const K_EXTSSTEP As String = "ExtSStep"
Public Const K_MINLNCOLOR As String = "MinLnColor"
Public Const K_MAJLNCOLOR As String = "MajLnColor"
Public Const S_COMPO As String = "Compo"
Public Const K_COMPODIR As String = "CompoDir"
Public Const K_SIDEMODE As String = "SideMode"
Public Const S_FLATPARTS As String = "FlatParts"
Public Const K_FLPCURRDIR As String = "CurrDir"
Public Const S_SIDES As String = "Sides"
Public Const K_SIDEANGLE As String = "SideAngle"
Public Const K_DRIPOFFSET As String = "DripOffset"
Public Const K_DRIPDEPTH As String = "DripDepth"
Public Const K_DRIPSHORT As String = "DripShort"
Public Const S_NEST As String = "Nest"
Public Const K_DIRECT As String = "Direct"
Public Const K_STEP As String = "Step"
Public Const K_ANGSTEP As String = "AngStep"
Public Const K_RESTRADIUS As String = "RestRadius"
Public Const K_SNAPDIST As String = "SnapDist"
Public Const S_CSV As String = "Csv"
Public Const K_CSVDIRECT As String = "Direct"
Public Const K_MAXDIMONX As String = "MaxDimOnX"
Public Const K_READER As String = "Reader"
Public Const K_CSVCURRDIR As String = "CurrDir"
Public Const K_CSVLASTFILE As String = "LastFile"
Public Const S_RAWPART As String = "RawPart"
Public Const K_RAWCOLOR As String = "RawColor"
Public Const K_KERFCOLOR As String = "KerfColor"
Public Const K_RAWLENGTH As String = "Length"
Public Const K_RAWWIDTH As String = "Width"
Public Const K_RAWHEIGHT As String = "Height"
Public Const K_RAWOFFSX As String = "OffsX"
Public Const K_RAWOFFSY As String = "OffsY"
Public Const K_RAWKERF As String = "Kerf"
Public Const S_RAWMOVE As String = "RawMove"
Public Const K_RAWSTEP As String = "Step"
Public Const K_RAWROTATION As String = "Rotation"
Public Const K_PERPENDICULAR As String = "Perpendicular"
Public Const S_CAMERA As String = "Camera"
Public Const K_CAM_COUNT As String = "Count"
Public Const K_CAM_EXEPATH As String = "ExePath"
Public Const K_CAM_IMAGE As String = "Image"
Public Const K_CAM_INFO As String = "Info"
Public Const K_CAM_RESULT As String = "Result"
Public Const K_CAM_CONTOUR As String = "Contour"
Public Const K_CAM_EXEPATH2 As String = "ExePath2"
Public Const K_CAM_IMAGE2 As String = "Image2"
Public Const K_CAM_INFO2 As String = "Info2"
Public Const K_CAM_RESULT2 As String = "Result2"
Public Const K_CAM_CONTOUR2 As String = "Contour2"
Public Const K_CAM_THRESHOLD As String = "Threshold"
Public Const K_CAM_TOLERANCE As String = "Tolerance"
Public Const K_CAM_TIMEOUT As String = "Timeout"
Public Const S_MACH As String = "Mach"
Public Const K_MACHINESDIR As String = "MachinesDir"
Public Const K_TOOLMAKERSDIR As String = "ToolMakersDir"
Public Const K_CURRMACH As String = "CurrMach"
Public Const S_SIMUL As String = "Simul"
Public Const K_SLIDERX As String = "SliderX"
Public Const K_SLIDERVAL As String = "SliderVal"
Public Const S_VEINMATCHING As String = "VeinMatching"
Public Const K_VEINMA_ENABLE As String = "Enable"
Public Const K_VEINMA_PLACE As String = "WinPlace"
Public Const K_VEINMA_IMGWIDTH As String = "ImgWidth"
Public Const K_VEINMA_IMGHEIGHT As String = "ImgHeight"
End Module
+10 -26
View File
@@ -42,13 +42,13 @@
<WarningLevel>1</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<DefineTrace>true</DefineTrace>
<DefineTrace>false</DefineTrace>
<OutputPath>bin\x86\Release\</OutputPath>
<DocumentationFile>LicenseManager.xml</DocumentationFile>
<Optimize>true</Optimize>
<NoWarn>
</NoWarn>
<DebugType>pdbonly</DebugType>
<DebugType>none</DebugType>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
@@ -59,7 +59,7 @@
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>LogoLicenceManager.ico</ApplicationIcon>
<ApplicationIcon>Resources\LogoLicenceManager.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="EgtUILib">
@@ -68,15 +68,10 @@
<Reference Include="EgtWPFLib5">
<HintPath>..\..\EgtProg\DllD32\EgtWPFLib5.dll</HintPath>
</Reference>
<Reference Include="MySql.Data, Version=6.10.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Windows\Microsoft.NET\assembly\GAC_MSIL\MySql.Data\v4.0_6.10.8.0__c5687fc88969c44d\MySql.Data.dll</HintPath>
<Reference Include="MySql.Data">
<HintPath>..\..\EgtProg\LicenceManager\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite, Version=1.0.106.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\EgtProg\LicenceManager\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
@@ -98,14 +93,8 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="AboutBox.Designer.vb">
<DependentUpon>AboutBox.vb</DependentUpon>
</Compile>
<Compile Include="AboutBox.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="AboutBoxWD.xaml.vb">
<DependentUpon>AboutBoxWD.xaml</DependentUpon>
<Compile Include="AboutBox\AboutBoxV.xaml.vb">
<DependentUpon>AboutBoxV.xaml</DependentUpon>
</Compile>
<Compile Include="Application.xaml.vb">
<DependentUpon>Application.xaml</DependentUpon>
@@ -255,9 +244,6 @@
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="AboutBox.resx">
<DependentUpon>AboutBox.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
@@ -276,7 +262,7 @@
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Page Include="AboutBoxWD.xaml">
<Page Include="AboutBox\AboutBoxV.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
@@ -378,11 +364,9 @@
</Page>
</ItemGroup>
<ItemGroup>
<Resource Include="LogoLicenceManager.ico" />
</ItemGroup>
<ItemGroup>
<Resource Include="MainWindow\LogoLicenceManager.ico" />
<Resource Include="Resources\LogoLicenceManager.ico" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup>
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\LicenceManager\LicenceManagerR32.exe
-11
View File
@@ -107,15 +107,4 @@
Grid.Row="5"/>
</Grid>
<Border BorderBrush="Gold"
BorderThickness="0"
Height="50"
Grid.Row="2">
<Button Content="About..."
Command="{Binding AboutBox_Command}"
Height="50"
Width="150"
Click="Button_Click"/>
</Border>
</Grid>
+1 -4
View File
@@ -1,6 +1,3 @@
Public Class MainMenuV
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
Dim ab As AboutBox = New AboutBox()
ab.ShowDialog()
End Sub
End Class
Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

+39 -134
View File
@@ -21,13 +21,6 @@ Public Class MainWindowM
End Get
End Property
Private m_sDataDir As String = String.Empty
Public ReadOnly Property sDataDir As String
Get
Return m_sDataDir
End Get
End Property
Private m_sDbConnect As String = String.Empty
Public ReadOnly Property sDbConnect As String
Get
@@ -42,24 +35,15 @@ Public Class MainWindowM
End Get
End Property
Private m_nDebug As Integer = 0
Private m_sKeygenDataDir As String = String.Empty
Public ReadOnly Property sKeygenDataDir As String
Get
Return m_sKeygenDataDir
End Get
End Property
Private m_objMutex As Mutex
Private m_bFirstInstance As Boolean = False
Friend ReadOnly Property bFirstInstance As Boolean
Get
Return m_bFirstInstance
End Get
End Property
Private m_nInstance As Integer = 0
Friend ReadOnly Property nInstance As Integer
Get
Return m_nInstance
End Get
End Property
Private m_nUserLevel As Integer = 1
Friend ReadOnly Property nUserLevel As Integer
Get
@@ -75,7 +59,7 @@ Public Class MainWindowM
End Property
Private m_nKeyOptions As UInteger = 0
Friend ReadOnly Property nKeyOptions As Integer
Friend ReadOnly Property nKeyOptions As UInteger
Get
Return m_nKeyOptions
End Get
@@ -116,34 +100,33 @@ Public Class MainWindowM
m_sConfigDir = m_sDataRoot & "\" & CONF_DIR
' Impostazione direttorio per file temporanei
m_sTempDir = m_sDataRoot & "\" & TEMP_DIR
' Impostazione direttorio che contiene il Db
m_sDataDir = m_sDataRoot & "\" & DATA_DIR
' Impostazione path Ini file
IniFile.m_sIniFile = m_sConfigDir & "\" & INI_FILE_NAME
' Leggo e imposto il percorso di KeyGenerator
m_sKeygenPath = String.Empty
GetMainPrivateProfileString(S_KEYGENERATOR, K_PATH, INI_FILE_NAME, m_sKeygenPath)
Map.refNewLicencePageVM.KeygenPath = m_sKeygenPath
m_sKeygenPath = ""
GetMainPrivateProfileString(S_KEYGENERATOR, K_PATH, "C:\\EgtProg\\KeyGenerator", m_sKeygenPath)
m_sKeygenDataDir = ""
GetMainPrivateProfileString(S_KEYGENERATOR, K_DATADIR, "C:\\EgtProg\\KeyGenerator\\Data", m_sKeygenDataDir)
' Leggo e imposto la stringa di connessione al DB
m_sDbConnect = String.Empty
Dim sDbConnectBuilder As String = String.Empty
GetMainPrivateProfileString(S_CONNECTION, K_SERVER, INI_FILE_NAME, sDbConnectBuilder)
GetMainPrivateProfileString(S_CONNECTION, K_SERVER, "192.168.1.50", sDbConnectBuilder)
m_sDbConnect &= "Server=" & sDbConnectBuilder
GetMainPrivateProfileString(S_CONNECTION, K_PORT, INI_FILE_NAME, sDbConnectBuilder)
GetMainPrivateProfileString(S_CONNECTION, K_PORT, "3307", sDbConnectBuilder)
m_sDbConnect &= ";Port=" & sDbConnectBuilder
GetMainPrivateProfileString(S_CONNECTION, K_DATABASE, INI_FILE_NAME, sDbConnectBuilder)
GetMainPrivateProfileString(S_CONNECTION, K_DATABASE, "Topolino", sDbConnectBuilder)
m_sDbConnect &= ";Database=" & sDbConnectBuilder
GetMainPrivateProfileString(S_CONNECTION, K_UID, INI_FILE_NAME, sDbConnectBuilder)
GetMainPrivateProfileString(S_CONNECTION, K_UID, "Pippo", sDbConnectBuilder)
m_sDbConnect &= ";Uid=" & sDbConnectBuilder
GetMainPrivateProfileString(S_CONNECTION, K_PWD, INI_FILE_NAME, sDbConnectBuilder)
GetMainPrivateProfileString(S_CONNECTION, K_PWD, "Pluto", sDbConnectBuilder)
m_sDbConnect &= ";Pwd=" & sDbConnectBuilder
ManageDb.DbPath = m_sDbConnect
ManageDb.DbConnection = New MySql.Data.MySqlClient.MySqlConnection(m_sDbConnect)
' Verifico indice di istanza
ManageInstance()
' Verifico istanza
ManageSingleInstance()
' Imposto tipo di chiave
EgtSetLockType(KEY_TYPE.HW)
' Leggo e imposto chiave di protezione
@@ -154,120 +137,46 @@ Public Class MainWindowM
EgtUILib.GetPrivateProfileString(S_LICENCE, K_KEY, "", sKey, sLicFile)
EgtSetKey(sKey)
' Recupero livello e opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(9423, 18, 1, m_nKeyLevel) And
EgtGetKeyOptions(9423, 18, 1, m_nKeyOptions)
' Verifico abilitazione prodotto
Dim bProd As Boolean = GetKeyOption(KEY_OPT.OFFICE_BASE)
Dim bKey As Boolean = EgtGetKeyLevel(823, 19, 1, m_nKeyLevel) And
EgtGetKeyOptions(823, 19, 1, m_nKeyOptions)
' Inizializzazione generale di EgtInterface
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
m_sLogFile = m_sTempDir & "\" & GENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
Dim sLogMsg As String = "User " & Environment.MachineName & "\" & Environment.UserName & " (" & m_nInstance.ToString() & ")" & vbLf &
m_sLogFile = m_sTempDir & "\" & LOG_FILE_NAME
Dim sLogMsg As String = "User " & Environment.MachineName & "\" & Environment.UserName & vbLf &
My.Application.Info.Title.ToString() & " ver. " &
My.Application.Info.Version.Major.ToString() &
"." & My.Application.Info.Version.Minor.ToString() &
(ChrW(97 - 1 + My.Application.Info.Version.Build)).ToString() &
My.Application.Info.Version.Revision.ToString()
EgtInit(m_nDebug, m_sLogFile, sLogMsg)
EgtInit(0, m_sLogFile, sLogMsg)
EgtSetTempDir(m_sTempDir)
EgtSetIniFile(IniFile.m_sIniFile)
' Leggo direttorio dei messaggi (se manca uso direttorio di configurazione)
Dim sMsgDir As String = String.Empty
If GetMainPrivateProfileString(S_GENERAL, K_MESSAGESDIR, "", sMsgDir) = 0 Then
sMsgDir = m_sConfigDir
End If
' Leggo lingua corrente
Dim sLanguage As String = String.Empty
GetMainPrivateProfileString(S_GENERAL, K_MESSAGES, "", sLanguage)
' Recupero nome file dei messaggi della lingua corrente
Dim sMsgName As String = "EgalTechIta.txt"
Dim nIndex As Integer = 1
While True
Dim ReadLanguage As Language = GetMainPrivateProfileLanguage(S_LANGUAGES, K_LANGUAGE & nIndex)
If IsNothing(ReadLanguage) Then Exit While
If String.Compare(ReadLanguage.Name, sLanguage, True) = 0 Then
sMsgName = ReadLanguage.FilePath
Exit While
End If
nIndex += 1
End While
' Leggo file messaggi
Dim sMsgFilePath As String = sMsgDir & "\" & sMsgName
If Not EgtLoadMessages(sMsgFilePath) Then
EgtOutLog("Error in EgtLoadMessages")
End If
' Leggo e imposto livello utilizzatore
m_nUserLevel = Math.Min(m_nKeyLevel, GetMainPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1))
' Imposto dir font Nfe e font default
Dim sNfeDir As String = String.Empty
GetMainPrivateProfileString(S_GEOMDB, K_NFEFONTDIR, "", sNfeDir)
Dim sDefFont As String = String.Empty
GetMainPrivateProfileString(S_GEOMDB, K_DEFAULTFONT, "", sDefFont)
EgtSetFont(sNfeDir, sDefFont)
' Creo connessione al Db
'If Not ManageDb.ConnectToDb(m_sDataDir & "\" & DB_FILENAME) Then
' MessageBox.Show("Impossibile collegarsi al Db", EgtMsg(MSG_EGTMSGBOX + 15), MessageBoxButton.OK, MessageBoxImage.Error)
' End
'End If
' Info su opzioni chiave
EgtOutLog("KeyOptions : " & bKey.ToString() & " " & m_nKeyOptions.ToString() & " " & bProd.ToString())
EgtOutLog("KeyOptions : " & bKey.ToString() & " " & m_nKeyOptions.ToString())
End Sub
Private Sub ManageInstance()
Private Sub ManageSingleInstance()
Dim bCreated As Boolean
Try
m_objMutex = New Mutex(False, "Global\OmagPHOTO", bCreated)
m_objMutex = New Mutex(False, "Global\LicenceManager", bCreated)
Catch
bCreated = False
End Try
m_bFirstInstance = bCreated
If bCreated Then
' Prima istanza
m_nInstance = 1
' Aggiorno stato istanze attive
WriteMainPrivateProfileString(S_GENERAL, K_INSTANCES, m_nInstance.ToString())
Else
' Leggo il massimo numero di istanze ammesse
Const MAX_INST As Integer = 32
Dim nMaxInst As Integer = GetMainPrivateProfileInt(S_GENERAL, K_MAXINST, 1)
nMaxInst = Max(1, Min(nMaxInst, MAX_INST))
' Cerco il primo indice di istanza libero
Dim nTmp As Integer = GetMainPrivateProfileInt(S_GENERAL, K_INSTANCES, 0)
m_nInstance = 1
Dim nMask As Integer = 1
While (nTmp And nMask) <> 0 And m_nInstance < MAX_INST
m_nInstance += 1
nMask *= 2
End While
' Se l'indice supera il massimo
If m_nInstance > nMaxInst Then
' porto in primo piano la prima istanza
Dim bFound As Boolean = False
' processi del programma a 32 bit
Dim localProc As Process() = Process.GetProcessesByName("OmagPHOTOR32")
For Each p As Process In localProc
If p.Id <> Process.GetCurrentProcess().Id Then
bFound = True
ShowWindow(p.MainWindowHandle, 1)
Exit For
End If
Next
' se non trovati processi a 32 bit provo a 64 bit
If Not bFound Then
localProc = Process.GetProcessesByName("OmagPHOTOR64")
For Each p As Process In localProc
If p.Id <> Process.GetCurrentProcess().Id Then
bFound = True
ShowWindow(p.MainWindowHandle, SW.RESTORE)
Exit For
End If
Next
If not bCreated Then
' porto in primo piano la prima istanza
Dim bFound As Boolean = False
' processi del programma a 32 bit
Dim localProc As Process() = Process.GetProcessesByName("LicenceManager32")
For Each p As Process In localProc
If p.Id <> Process.GetCurrentProcess().Id Then
bFound = True
ShowWindow(p.MainWindowHandle, 1)
Exit For
End If
' esco dal programma
End
End If
' Aggiorno stato istanze attive
nTmp += (1 << (m_nInstance - 1))
WriteMainPrivateProfileString(S_GENERAL, K_INSTANCES, nTmp.ToString())
Next
' esco dal programma
End
End If
End Sub
@@ -280,10 +189,6 @@ Public Class MainWindowM
EgtExit()
' Rilascio mutex
If Not IsNothing(m_objMutex) Then m_objMutex.Close()
' Aggiorno istanze usate
Dim nTmp As Integer = GetMainPrivateProfileInt(S_GENERAL, K_INSTANCES, 0)
nTmp -= (1 << (m_nInstance - 1))
WriteMainPrivateProfileString(S_GENERAL, K_INSTANCES, nTmp.ToString())
End Sub
#End Region ' METHODS
+4 -27
View File
@@ -6,40 +6,17 @@
DataContext="{StaticResource MainWindowVM}"
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
Title="{Binding Title}"
MinHeight="300" MinWidth="400"
Width="800" Height="550"
Icon="LogoLicenceManager.Ico"
WindowStartupLocation="CenterScreen">
MinHeight="480" MinWidth="640"
Icon="/Resources/LogoLicenceManager.Ico"
AboutBoxCommand="{Binding AboutBoxCommand}" WindowStyle="None" ResizeMode="NoResize">
<!--Pannello principale -->
<!--<ContentControl Content="{Binding ProjectContent}"/>-->
<!-- ** Definizione della Grid della MainWindow ** -->
<Grid Name="MainWindowGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="73*"/>
<ColumnDefinition Width="324*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="10*"/>
</Grid.RowDefinitions>
<ContentControl Content="{Binding ProjectContent}" Grid.ColumnSpan="2" Grid.Row="1"/>
<!-- ** Definizione della Grid della Row 0 (Barra superiore) ** -->
<Grid Grid.ColumnSpan="2" Margin="0,0,-0.4,0.2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="11*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Border Name="LogoBrd" Background="Transparent">
<Image Source="/LicenseManager;component/LogoLicenceManager.ico" Stretch="Uniform" Margin="1"/>
</Border>
</Grid>
<ContentControl Content="{Binding ProjectContent}"/>
</Grid>
-4
View File
@@ -33,10 +33,6 @@ Class MainWindowV
End If
End Sub
' Evento che apre AboutBox quando viene clickato il logo
Private Sub LogoBrd_MouseDown(sender As Object, e As MouseButtonEventArgs) Handles LogoBrd.MouseDown
Dim AboutBox As New AboutBoxWD(Me)
End Sub
#End Region ' EVENTS
End Class
+59 -36
View File
@@ -157,25 +157,25 @@ Public Class MainWindowVM
End Set
End Property
Private m_MainMenuV As New MainMenuV
Private m_NewClientPageV As New NewClientPageV
Private m_NewKeyPageV As New NewKeyPageV
Private m_NewLicencePageV As New NewLicencePageV
Private m_NewProductPageV As New NewProductPageV
Private m_NewVersionPageV As New NewVersionPageV
Private m_NewResellerPageV As New NewResellerPageV
Private m_SearchClientPageV As New SearchClientPageV
Private m_SearchKeyPageV As New SearchKeyPageV
Private m_SearchLicencePageV As New SearchLicencePageV
Private m_SearchProductPageV As New SearchProductPageV
Private m_SearchVersionPageV As New SearchVersionPageV
Private m_SearchResellerPageV As New SearchResellerPageV
Private m_UpdateClientPageV As New UpdateClientPageV
Private m_UpdateKeyPageV As New UpdateKeyPageV
Private m_UpdateLicencePageV As New UpdateLicencePageV
Private m_UpdateProductPageV As New UpdateProductPageV
Private m_UpdateVersionPageV As New UpdateVersionPageV
Private m_UpdateResellerPageV As New UpdateResellerPageV
Private m_MainMenuV As MainMenuV
Private m_NewClientPageV As NewClientPageV
Private m_NewKeyPageV As NewKeyPageV
Private m_NewLicencePageV As NewLicencePageV
Private m_NewProductPageV As NewProductPageV
Private m_NewVersionPageV As NewVersionPageV
Private m_NewResellerPageV As NewResellerPageV
Private m_SearchClientPageV As SearchClientPageV
Private m_SearchKeyPageV As SearchKeyPageV
Private m_SearchLicencePageV As SearchLicencePageV
Private m_SearchProductPageV As SearchProductPageV
Private m_SearchVersionPageV As SearchVersionPageV
Private m_SearchResellerPageV As SearchResellerPageV
Private m_UpdateClientPageV As UpdateClientPageV
Private m_UpdateKeyPageV As UpdateKeyPageV
Private m_UpdateLicencePageV As UpdateLicencePageV
Private m_UpdateProductPageV As UpdateProductPageV
Private m_UpdateVersionPageV As UpdateVersionPageV
Private m_UpdateResellerPageV As UpdateResellerPageV
Public ReadOnly Property ProjectContent As FrameworkElement
Get
@@ -224,6 +224,9 @@ Public Class MainWindowVM
End Get
End Property
' definizione comandi
Private m_cmdAboutBox As ICommand
#End Region ' FIELDS & PROPERTIES
#Region "CONSTRUCTOR"
@@ -233,6 +236,26 @@ Public Class MainWindowVM
Map.BeginInit(Me)
' Costruisco model della MainWindow
m_MainWindowM = New MainWindowM
' Creo tutti gli oggetti
m_MainMenuV = New MainMenuV
m_NewClientPageV = New NewClientPageV
m_NewKeyPageV = New NewKeyPageV
m_NewLicencePageV = New NewLicencePageV
m_NewProductPageV = New NewProductPageV
m_NewVersionPageV = New NewVersionPageV
m_NewResellerPageV = New NewResellerPageV
m_SearchClientPageV = New SearchClientPageV
m_SearchKeyPageV = New SearchKeyPageV
m_SearchLicencePageV = New SearchLicencePageV
m_SearchProductPageV = New SearchProductPageV
m_SearchVersionPageV = New SearchVersionPageV
m_SearchResellerPageV = New SearchResellerPageV
m_UpdateClientPageV = New UpdateClientPageV
m_UpdateKeyPageV = New UpdateKeyPageV
m_UpdateLicencePageV = New UpdateLicencePageV
m_UpdateProductPageV = New UpdateProductPageV
m_UpdateVersionPageV = New UpdateVersionPageV
m_UpdateResellerPageV = New UpdateResellerPageV
' Setto il titolo dell'applicazione
SetTitle(My.Application.Info.Title.ToString() & " ver. " &
My.Application.Info.Version.Major.ToString() &
@@ -267,26 +290,26 @@ Public Class MainWindowVM
#Region "COMMANDS"
'#Region "AboutBoxCommand"
#Region "AboutBoxCommand"
' ' Returns a command that manage the MainWindow_Unloaded command
' Public ReadOnly Property AboutBoxCommand() As ICommand
' Get
' If m_cmdAboutBox Is Nothing Then
' m_cmdAboutBox = New Command(AddressOf AboutBox)
' End If
' Return m_cmdAboutBox
' End Get
' End Property
' Returns a command that manage the MainWindow_Unloaded command
Public ReadOnly Property AboutBoxCommand() As ICommand
Get
If m_cmdAboutBox Is Nothing Then
m_cmdAboutBox = New Command(AddressOf AboutBox)
End If
Return m_cmdAboutBox
End Get
End Property
' ' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
' Public Sub AboutBox(ByVal param As Object)
' Dim AboutBoxWindow As New AboutBoxV
' AboutBoxWindow.Owner = Application.Current.MainWindow
' AboutBoxWindow.ShowDialog()
' End Sub
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
Public Sub AboutBox(ByVal param As Object)
Dim AboutBoxWindow As New AboutBoxV
AboutBoxWindow.Owner = Application.Current.MainWindow
AboutBoxWindow.ShowDialog()
End Sub
'#End Region ' AboutBoxCommand
#End Region ' AboutBoxCommand
#End Region ' COMMANDS
+1 -1
View File
@@ -109,7 +109,7 @@ Public Class Key
Sub New(KeyReader As MySqlDataReader)
m_Number = CInt(KeyReader(DB_NUMBER))
If (Not KeyReader(DB_CLIENTID).Equals(DBNull.Value)) Then
If Not KeyReader(DB_CLIENTID).Equals(DBNull.Value) Then
m_ClientID = CInt(KeyReader(DB_CLIENTID))
End If
m_IsDongle = CInt(KeyReader(DB_ISDONGLE))
+10 -6
View File
@@ -10,11 +10,15 @@ Imports System.Windows
' associate a un assembly.
' Controllare i valori degli attributi degli assembly
<Assembly: AssemblyTitle("LicenseManager")>
<Assembly: AssemblyDescription("")>
#If DEBUG Then
<Assembly: AssemblyTitle("LicenceManager")>
<Assembly: AssemblyDescription("LicenceManager Debug")>
#Else
<Assembly: AssemblyTitle("LicenceManager")>
<Assembly: AssemblyDescription("LicenceManager")>
#End If
<Assembly: AssemblyCompany("Egaltech srl")>
<Assembly: AssemblyProduct("LicenseManager")>
<Assembly: AssemblyProduct("LicenceManager")>
<Assembly: AssemblyCopyright("Copyright © 2018-2019")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(false)>
@@ -55,5 +59,5 @@ Imports System.Windows
' usando l'asterisco '*' come illustrato di seguito:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.1.2.5")>
<Assembly: AssemblyFileVersion("2.1.2.5")>
<Assembly: AssemblyVersion("2.1.3.1")>
<Assembly: AssemblyFileVersion("2.1.3.1")>
+3 -3
View File
@@ -25,14 +25,14 @@ Public Class NewClientPageVM
End Property
Private m_ResellerList As List(Of Reseller)
Public ReadOnly Property ResellerList As List(Of Reseller)
Public Overloads ReadOnly Property ResellerList As List(Of Reseller)
Get
Return m_ResellerList
End Get
End Property
Private m_SelReseller As Reseller
Public Property SelReseller As Reseller
Public Overloads Property SelReseller As Reseller
Get
Return m_SelReseller
End Get
@@ -43,7 +43,7 @@ Public Class NewClientPageVM
End Property
Private m_Email As String
Public Property Email As String
Public Overloads Property Email As String
Get
Return m_Email
End Get
+2 -2
View File
@@ -40,7 +40,7 @@ Public Class NewKeyPageVM
End Property
Private m_GeneratedLockID As String
Public Property GeneratedLockID As String
Public Overloads Property GeneratedLockID As String
Get
Return m_GeneratedLockID
End Get
@@ -84,7 +84,7 @@ Public Class NewKeyPageVM
End Property
Private m_GeneratedNumber As Integer
Public Property GeneratedNumber As Integer
Public Overloads Property GeneratedNumber As Integer
Get
Return m_GeneratedNumber
End Get
+103 -133
View File
@@ -183,7 +183,12 @@ Public Class NewLicencePageVM
Dim Query As String = "SELECT * FROM " & DB_CLIENT & " INNER JOIN " & DB_KEY &
" ON " & DB_CLIENT & "." & DB_CLIENTID & " = " & DB_KEY & "." & DB_CLIENTID &
" WHERE " & DB_LOCKID & " = " & "'" & m_SelNumber.LockID & "'"
m_ClientName = ManageDb.ExecuteStringQuery(Query, DB_NAME)(0)
Dim ResLists As List(Of String) = ManageDb.ExecuteStringQuery(Query, DB_NAME)
If ResLists.Count() > 0 Then
m_ClientName = ResLists(0)
Else
m_ClientName = ""
End If
NotifyPropertyChanged("ClientName")
End If
End Set
@@ -203,16 +208,6 @@ Public Class NewLicencePageVM
End Get
End Property
Private m_KeygenPath As String ' String.Empty
Public Property KeygenPath As String
Get
Return m_KeygenPath
End Get
Set(value As String)
m_KeygenPath = value
End Set
End Property
' Definizione comandi
Private m_cmdGenerate As Command
Private m_cmdCancel As Command
@@ -405,130 +400,105 @@ Public Class NewLicencePageVM
End Property
Public Sub Generate(ByVal param As Object)
If Not IsNothing(SelNumber) And Not IsNothing(m_Option1) And Not IsNothing(m_Option2) And
Not IsNothing(m_SelProduct) And Not IsNothing(m_SelVersion) And Not IsNothing(m_SelProductLevel) And
Not IsNothing(m_ProductDeadline) And Not IsNothing(m_OptionDeadline) And Not IsNothing(m_LicenseDate) Then
'Cerco LockID associato alla chiave
Dim Query As String = "SELECT " & DB_LOCKID & " FROM " & DB_KEY & " WHERE " & DB_NUMBER & " = " & SelNumber.Number & " AND " & DB_ISDONGLE & " = " & If(GetSelIsDongle(), 1, 0)
Dim LockID As String = ManageDb.ExecuteStringQuery(Query, DB_LOCKID)(0)
If Not LockID.Equals(String.Empty) Then
' Calcolo valore decimale opzione1
Dim nDecOption1 As Integer = CalcOptionDec(m_Option1)
Dim nDecOption2 As Integer = CalcOptionDec(m_Option2)
'' Aggiungo una licenza al Db
'Query = "INSERT INTO " & DB_LICENCE & " (" & DB_PRODUCTID & ", " & DB_PRODUCTVERSION & ", " & DB_PRODUCTLEVEL & ", " & DB_PRODUCTDEADLINE & ", " & DB_OPTION1 & ", " & DB_OPTION2 & ", " & DB_OPTIONDEADLINE & ", " & DB_LOCKID & ", " & DB_FILE & ")" &
' " VALUES ('" & m_SelProduct.ProductID & "', " &
' "'" & m_SelVersion.VersionNumber & "', " & ' "'" & m_SelVersion.VersionID & "', " &
' "'" & m_ProductLevel & "', " &
' "Date('" & (String.Format("{0:yyyy-MM-dd}", ProductDeadline)) & "'), " &
' "'" & nDecOption1 & "', " &
' "'" & nDecOption2 & "', " &
' "Date('" & (String.Format("{0:yyyy-MM-dd}", OptionDeadline)) & "'), " &
' "'" & LockID & "', " &
' "'" & m_ClientName & "')" ' SISTEMARE CON NOME FILE
'ManageDb.ExecuteQuery(Query)
'' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
'Map.refMainWindowVM.SelProjectMode = MainWindowVM.ProjectModeOpt.MAINMENU
'Data
Dim startDate As New DateTime(1970, 1, 1)
Dim DayProductDeadline As Integer
DayProductDeadline = (ProductDeadline - startDate).Value.Days
Dim DayOptionDeadline As Integer
DayOptionDeadline = (OptionDeadline - startDate).Value.Days
'Cerco ClientID associato alla chiave scelta
'Query = "SELECT " & DB_CLIENTID & " FROM " & DB_KEY & " WHERE " & DB_LOCKID & " = '" & LockID & "'"
' Dim ClientID As Integer = ManageDb.ExecuteIntegerQuery(Query, DB_CLIENTID)(0)
' 'Cerco NameClient associato a ClientID
' Query = "SELECT " & DB_NAME & " FROM " & DB_CLIENT & " WHERE " & DB_CLIENTID & " = " & ClientID
' Dim NameResult As List(Of String) = ManageDb.ExecuteStringQuery(Query, DB_NAME)
' If NameResult.Count > 0 Then
' Dim m_NameClient As String = NameResult(0)
'Apro file
Dim StringFile As New List(Of String)
StringFile.Add(";")
StringFile.Add("[Index]")
StringFile.Add("Last = 1")
StringFile.Add("[Licence1]")
StringFile.Add("Data=" & Format(Now, "yyyy/MM/dd hh:mm:ss"))
Dim cName As String = String.Empty
If Not IsNothing(m_ClientName) Then
cName = m_ClientName
End If
If (GetSelIsDongle()) Then
StringFile.Add("Customer=Key-" & SelNumber.Number.ToString("D6") & "-" & cName) ' & "-" & m_NameClient & "-" & SelProduct.ProductName)
Else
StringFile.Add("Customer=Soft-" & SelNumber.Number.ToString("D6") & "-" & cName) ' SISTEMARE CON NUMERO PROGRESSIVO
End If
StringFile.Add("LockID=" & LockID)
StringFile.Add("ClearLockId=")
StringFile.Add("Product=" & SelProduct.ProductNumber)
StringFile.Add("Ver=" & SelVersion.VersionNumber) ' & SelVersion.VersionID)
StringFile.Add("Lev=" & SelProductLevel)
StringFile.Add("ExpDays=" & DayProductDeadline)
StringFile.Add("Opt1=" & nDecOption1)
StringFile.Add("Opt2=" & nDecOption2)
StringFile.Add("OptExpDays=" & DayOptionDeadline)
Dim fileName As String
If (GetSelIsDongle()) Then
fileName = "C:\EgtProg\Key-" & SelNumber.Number.ToString("D6") & "-" & SelProduct.ProductName & ".Kge"
Else
fileName = "C:\EgtProg\Soft-" & SelNumber.Number.ToString("D6") & "-" & SelProduct.ProductName & ".Kge" ' SISTEMARE CON NUMERO PROGRESSIVO
End If
IO.File.WriteAllLines(fileName, StringFile, Text.Encoding.UTF8)
fileName &= " 1"
' Process.Start("C:\Program Files\Notepad++\notepad++.exe", fileName)
' Dim kgPath As String = Map.refMainWindowVM.MainWindowM.sKeygenPath
Dim proc As Process = Process.Start(KeygenPath, fileName)
'MessageBox.Show("DA INSERIRE: " & Constants.vbCrLf &
' " -Numero Prodotto: " & m_SelProduct.ProductNumber & Constants.vbCrLf &
' " -Numero Versione: " & m_SelVersion.VersionNumber)
' Attendo il termine del processo
While (Not proc.HasExited)
proc.Refresh()
System.Threading.Thread.Sleep(50)
End While
'Dim ask As MsgBoxResult = MsgBox("Licenza generata correttamente?", MsgBoxStyle.YesNo)
'If ask = MsgBoxResult.Yes Then
If proc.ExitCode = 0 Then
' Aggiungo una licenza al Db
Query = "INSERT INTO " & DB_LICENCE & " (" & DB_PRODUCTID & ", " & DB_PRODUCTVERSION & ", " & DB_PRODUCTLEVEL & ", " & DB_PRODUCTDEADLINE & ", " & DB_OPTION1 & ", " & DB_OPTION2 & ", " & DB_OPTIONDEADLINE & ", " & DB_LOCKID & ", " & DB_FILE & ", " & DB_DATE & ")" &
" VALUES ('" & m_SelProduct.ProductID & "', " &
"'" & m_SelVersion.VersionNumber & "', " & ' "'" & m_SelVersion.VersionID & "', " &
"'" & m_SelProductLevel & "', " &
"Date('" & (String.Format("{0:yyyy-MM-dd}", ProductDeadline)) & "'), " &
"'" & nDecOption1 & "', " &
"'" & nDecOption2 & "', " &
"Date('" & (String.Format("{0:yyyy-MM-dd}", OptionDeadline)) & "'), " &
"'" & LockID & "', " &
"'" & fileName.Replace("\", "\\") & "', " & ' SISTEMARE CON NOME FILE
"'" & Format(LicenseDate, "yyyy-MM-dd") & "')"
ManageDb.ExecuteQuery(Query)
Else
' C'è un errore
MessageBox.Show("La Licenza non è stata generata correttamente", "KeyGenerator Error")
End If
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
Map.refMainWindowVM.SelProjectMode = MainWindowVM.ProjectModeOpt.MAINMENU
Else
MessageBox.Show("Errore")
End If
'Else
' MessageBox.Show("Il Number Key corrispondente non esiste")
'End If
Else
' Verifico presenza di tutti i dati
If IsNothing(SelNumber) OrElse
IsNothing(m_Option1) OrElse
IsNothing(m_Option2) OrElse
IsNothing(m_SelProduct) OrElse
IsNothing(m_SelVersion) OrElse
IsNothing(m_SelProductLevel) OrElse
IsNothing(m_ProductDeadline) OrElse
IsNothing(m_OptionDeadline) OrElse
IsNothing(m_LicenseDate) Then
MessageBox.Show("Completare i campi presenti")
Return
End If
' Cerco LockID associato alla chiave
Dim Query As String = "SELECT " & DB_LOCKID & " FROM " & DB_KEY & " WHERE " & DB_NUMBER & " = " & SelNumber.Number &
" AND " & DB_ISDONGLE & " = " & If(GetSelIsDongle(), 1, 0)
Dim LockID As String = ManageDb.ExecuteStringQuery(Query, DB_LOCKID)(0)
If String.IsNullOrWhiteSpace( LockID) Then
MessageBox.Show("Errore")
Return
End If
' Calcolo valore decimale opzione1
Dim nDecOption1 As Integer = CalcOptionDec(m_Option1)
Dim nDecOption2 As Integer = CalcOptionDec(m_Option2)
' Data
Dim startDate As New DateTime(1970, 1, 1)
Dim DayProductDeadline As Integer
DayProductDeadline = (ProductDeadline - startDate).Value.Days
Dim DayOptionDeadline As Integer
DayOptionDeadline = (OptionDeadline - startDate).Value.Days
' Nome licenza
Dim sCliName As String = If( String.IsNullOrWhiteSpace(m_ClientName), "", "-" & m_ClientName)
Dim sLicName As String = If( GetSelIsDongle(), "Key-", "Soft-") & SelNumber.Number.ToString("D6") & "-" & SelProduct.ProductName & sCliName
' Nome file
Dim fileName As String = Map.refMainWindowVM.MainWindowM.sKeygenDataDir & "\" & sLicName & ".Kge"
' Scrivo il file
Dim StringFile As New List(Of String)
StringFile.Add(";")
StringFile.Add("[Index]")
StringFile.Add("Last=1")
StringFile.Add("[Licence1]")
StringFile.Add("Data=" & Format(Now, "yyyy/MM/dd HH:mm:ss"))
StringFile.Add("Customer=" & sLicName)
StringFile.Add("LockId=" & LockID)
StringFile.Add("ClearLockId=")
StringFile.Add("Product=" & SelProduct.ProductNumber)
StringFile.Add("Ver=" & SelVersion.VersionNumber) ' & SelVersion.VersionID)
StringFile.Add("Lev=" & SelProductLevel)
StringFile.Add("ExpDays=" & DayProductDeadline)
StringFile.Add("Opt1=" & nDecOption1)
StringFile.Add("Opt2=" & nDecOption2)
StringFile.Add("OptExpDays=" & DayOptionDeadline)
Try
IO.File.WriteAllLines(fileName, StringFile, Text.Encoding.UTF8)
Catch ex As Exception
MessageBox.Show("Errore nella scrittura del file dati per licenza", "KeyGenerator Error")
return
End Try
' Lancio il generatore di licenza
Dim sParams As String = fileName & " 1"
Dim proc As Process = Process.Start(Map.refMainWindowVM.MainWindowM.sKeygenPath, sParams)
' Attendo il termine del processo
While Not proc.HasExited
proc.Refresh()
System.Threading.Thread.Sleep(50)
End While
' Errore nella generazione della licenza
If proc.ExitCode <> 0 Then
Dim sOut As String = "La Licenza non è stata generata correttamente (" & proc.ExitCode.ToString() & ")"
MessageBox.Show(sOut, "KeyGenerator Error")
Return
End If
' Aggiungo una licenza al Db
Query = "INSERT INTO " & DB_LICENCE & " (" & DB_PRODUCTID & ", " & DB_PRODUCTVERSION & ", " & DB_PRODUCTLEVEL & ", " &
DB_PRODUCTDEADLINE & ", " & DB_OPTION1 & ", " & DB_OPTION2 & ", " &
DB_OPTIONDEADLINE & ", " & DB_LOCKID & ", " & DB_FILE & ", " & DB_DATE & ")" &
" VALUES ('" & m_SelProduct.ProductID & "', " &
"'" & m_SelVersion.VersionNumber & "', " &
"'" & m_SelProductLevel & "', " &
"Date('" & (String.Format("{0:yyyy-MM-dd}", ProductDeadline)) & "'), " &
"'" & nDecOption1 & "', " &
"'" & nDecOption2 & "', " &
"Date('" & (String.Format("{0:yyyy-MM-dd}", OptionDeadline)) & "'), " &
"'" & LockID & "', " &
"'" & fileName.Replace("\", "\\") & "', " &
"'" & Format(LicenseDate, "yyyy-MM-dd") & "')"
ManageDb.ExecuteQuery(Query)
Map.refMainWindowVM.SelProjectMode = MainWindowVM.ProjectModeOpt.MAINMENU
End Sub
#End Region ' Generate

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 361 KiB

+2 -2
View File
@@ -26,14 +26,14 @@ Public Class SearchClientPageVM
End Property
Private m_ResellerList As List(Of Reseller)
Public ReadOnly Property ResellerList As List(Of Reseller)
Public Overloads ReadOnly Property ResellerList As List(Of Reseller)
Get
Return m_ResellerList
End Get
End Property
Private m_SelReseller As Reseller
Public Property SelReseller As Reseller
Public Overloads Property SelReseller As Reseller
Get
Return m_SelReseller
End Get
+18 -12
View File
@@ -41,29 +41,35 @@ Public Class SearchKeyPageVM
End Get
End Property
Private m_StateList As New List(Of String)({"Consegnata", "InDeposito", "InDepositoEgt", "Guasta", "---ANY---"}) ' Key.KeyState)({Key.KeyState.Consegnata, Key.KeyState.InDeposito, Key.KeyState.Guasta, Key.KeyState.ANY})
Public ReadOnly Property StateList As List(Of String) ' Key.KeyState)
Private m_StateList As New List(Of String)({"Consegnata", "InDeposito", "InDepositoEgt", "Guasta", "---ANY---"})
Public Overloads ReadOnly Property StateList As List(Of String)
Get
Return m_StateList
End Get
End Property
Friend Sub SetStateList(value As List(Of String)) ' Key.KeyState))
Friend Overloads Sub SetStateList(value As List(Of String))
m_StateList = value
End Sub
Private m_SelState As Key.KeyState
Public Property SelState As String
Public Overloads Property SelState As String
Get
Return m_SelState.ToString()
End Get
Set(value As String) ' Key.KeyState)
'm_SelState = value
If (value.Equals(" ")) Then m_SelState = Nothing
If (value.Equals("Consegnata")) Then m_SelState = Key.KeyState.Consegnata
If (value.Equals("InDeposito")) Then m_SelState = Key.KeyState.InDeposito
If (value.Equals("InDepositoEgt")) Then m_SelState = Key.KeyState.InDepositoEgt
If (value.Equals("Guasta")) Then m_SelState = Key.KeyState.Guasta
If (value.Equals("---ANY---")) Then m_SelState = Key.KeyState.ANY
Set(value As String)
If String.IsNullOrWhiteSpace( value) Then
m_SelState = Nothing
Else If value.Equals("Consegnata") Then
m_SelState = Key.KeyState.Consegnata
Else If value.Equals("InDeposito") Then
m_SelState = Key.KeyState.InDeposito
Else If value.Equals("InDepositoEgt") Then
m_SelState = Key.KeyState.InDepositoEgt
Else If value.Equals("Guasta") Then
m_SelState = Key.KeyState.Guasta
ElseIf value.Equals("---ANY---") Then
m_SelState = Key.KeyState.ANY
End If
NotifyPropertyChanged("SelState")
End Set
End Property
+1 -1
View File
@@ -290,7 +290,7 @@ Public Class SearchLicencePageVM
Query = "SELECT * FROM " & DB_VERSION & " GROUP BY " & DB_VERSIONNUMBER
m_VersionList = ManageDb.ExecuteVersionQuery(Query)
m_VersionList.Sort(Function(x, y) y.VersionNumber.CompareTo(x.VersionNumber))
m_VersionList.Add(New Version(0, 0, 0)) ' "---ANY---"
m_VersionList.Add(New Version("0", "0", 0)) ' "---ANY---"
NotifyPropertyChanged("VersionList")
' Carico lista ProductLevel
+2 -3
View File
@@ -1,6 +1,5 @@
Imports System.Collections.ObjectModel
Imports System.Data.SQLite
Imports System.Windows.Forms
Imports System.Windows
Imports EgtWPFLib5
Public Class SearchProductPageVM
@@ -334,7 +333,7 @@ Public Class SearchProductPageVM
Public Sub Delete(ByVal param As Object)
If Not IsNothing(m_SelSearchResult) Then
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
If MessageBox.Show("Do you really want to delete this Product?", "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.No Then
If MessageBox.Show("Do you really want to delete this Product?", "Delete", MessageBoxButton.YesNo, MessageBoxImage.Warning) = MessageBoxResult.No Then
MsgBox("Operation cancelled")
Exit Sub
End If
+4 -5
View File
@@ -1,6 +1,5 @@
Imports System.Collections.ObjectModel
Imports System.Data.SQLite
Imports System.Windows.Forms
Imports System.Windows
Imports EgtWPFLib5
Imports MySql.Data.MySqlClient
@@ -200,15 +199,15 @@ Public Class SearchResellerPageVM
Public Sub Delete(ByVal param As Object)
If Not IsNothing(m_SelSearchResult) Then
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
If MessageBox.Show("Do you really want to delete this Reseller?", "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.No Then
MsgBox("Operation cancelled")
If MessageBox.Show("Do you really want to delete this Reseller?", "Delete", MessageBoxButton.YesNo, MessageBoxImage.Warning) = MessageBoxResult.No Then
MessageBox.Show("Operation cancelled")
Exit Sub
End If
' Cerco nella tabella Reseller
Dim Query As String = "DELETE FROM " & DB_RESELLER & " WHERE " & DB_RESELLERID & " = " & m_SelSearchResult.ResellerID
Dim Result As Integer = ExecuteQuery(Query)
If Result <> 0 Then
MsgBox("Operation executed")
MessageBox.Show("Operation executed")
End If
' Map.refMainWindowVM.SelProjectMode = MainWindowVM.ProjectModeOpt.MAINMENU
Search(param)
+6 -7
View File
@@ -1,6 +1,5 @@
Imports System.Collections.ObjectModel
Imports System.Data.SQLite
Imports System.Windows.Forms
Imports System.Windows
Imports EgtWPFLib5
Imports MySql.Data.MySqlClient
@@ -27,14 +26,14 @@ Public Class SearchVersionPageVM
End Property
Private m_ProductList As List(Of Product)
Public ReadOnly Property ProductList As List(Of Product)
Public Overloads ReadOnly Property ProductList As List(Of Product)
Get
Return m_ProductList
End Get
End Property
Private m_SelProduct As Product
Public Property SelProduct As Product
Public Overloads Property SelProduct As Product
Get
Return m_SelProduct
End Get
@@ -222,15 +221,15 @@ Public Class SearchVersionPageVM
Public Sub Delete(ByVal param As Object)
If Not IsNothing(m_SelSearchResult) Then
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
If MessageBox.Show("Do you really want to delete this Version?", "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.No Then
MsgBox("Operation cancelled")
If MessageBox.Show("Do you really want to delete this Version?", "Delete", MessageBoxButton.YesNo, MessageBoxImage.Warning) = MessageBoxResult.No Then
MessageBox.Show("Operation cancelled")
Exit Sub
End If
' Cerco nella tabella Version
Dim Query As String = "DELETE FROM " & DB_VERSION & " WHERE " & DB_VERSIONID & " = " & m_SelSearchResult.VersionID
Dim Result As Integer = ExecuteQuery(Query)
If Result <> 0 Then
MsgBox("Operation executed")
MessageBox.Show("Operation executed")
End If
' Map.refMainWindowVM.SelProjectMode = MainWindowVM.ProjectModeOpt.MAINMENU
Search(param)
+2 -2
View File
@@ -16,14 +16,14 @@ Public Class UpdateClientPageVM
End Property
Private m_ResellerList As List(Of Reseller)
Public ReadOnly Property ResellerList As List(Of Reseller)
Public Overloads ReadOnly Property ResellerList As List(Of Reseller)
Get
Return m_ResellerList
End Get
End Property
Private m_SelReseller As Reseller
Public Property SelReseller As Reseller
Public Overloads Property SelReseller As Reseller
Get
Return m_SelReseller
End Get
+1 -1
View File
@@ -170,7 +170,7 @@ Public Class UpdateKeyPageVM
'Dim item As Key.KeyState = m_StateList(2)
'm_StateList.RemoveAt(2)
''If (newIndex > oldIndex) Then newIndex--;
''' the actual index could have shifted due to the removal
'' the actual index could have shifted due to the removal
'm_StateList.Insert(0, item)
m_SelState = m_StateList(Key.State)
+1 -1
View File
@@ -219,7 +219,7 @@ Public Class UpdateLicencePageVM
SelVersion = m_VersionList.FirstOrDefault(Function(vers) vers.VersionNumber.Equals(ManageDb.ExecuteVersionQuery(selQuery)(0).VersionNumber))
NotifyPropertyChanged("SelVersion")
SelProductLevel = Licence.ProductLevel ' String.Empty
SelProductLevel = Licence.ProductLevel.ToString()
NotifyPropertyChanged("SelProductLevel")
FileName = Licence.File ' String.Empty
NotifyPropertyChanged("File")
-1
View File
@@ -1,5 +1,4 @@
Imports System.Collections.ObjectModel
Imports System.Data.SQLite
Imports EgtWPFLib5
Public Class UpdateProductPageVM
+1 -17
View File
@@ -5,11 +5,6 @@ Module ManageDb
#Region "FIELDS & PROPERTIES"
' Dim Ini As New IniManager
' Private m_DbPath As String = Ini.ReadIni() ' GetIniValue("Connection", "Server", "C:\\EgtDev\\LicenseManager2\\config.ini") ' DB_CONNECTIONSTRING
' Private m_DbPath As String = Map.refMainWindowVM.MainWindowM.sDbConnect ' Map.refMainWindowVM.MainWindowM.sConfigDir & "\" & INI_FILE_NAME
' Private m_DbPath As String = DB_CONNECTIONSTRING
Private m_DbPath As String ' String.Empty
Public Property DbPath As String
@@ -35,22 +30,14 @@ Module ManageDb
#Region "METHODS"
'Friend Sub CreateDbFile()
' SQLiteConnection.CreateFile(Map.refMainWindowVM.MainWindowM.sDataDir & "\" & DB_FILENAME)
'End Sub
Friend Function ConnectToDb() As Boolean
Dim DbPath As String = Map.refMainWindowVM.MainWindowM.sDbConnect ' Map.refMainWindowVM.MainWindowM.sDataDir & "\" & DB_FILENAME
Dim DbPath As String = Map.refMainWindowVM.MainWindowM.sDbConnect
m_DbPath = DbPath
' If Not File.Exists(DbPath) Then Return False
m_DbConnection = New MySqlConnection(DbPath)
Return Not IsNothing(m_DbConnection)
End Function
Friend Function ConnectToDb(DbPath As String) As Boolean
'If Not File.Exists(DbPath) Then
' Return False
'End If
m_DbPath = DbPath
m_DbConnection = New MySqlConnection(DbPath)
Return Not IsNothing(m_DbConnection)
@@ -103,9 +90,6 @@ Module ManageDb
DB_VERSIONNUMBER & " INTEGER, " &
"FOREIGN KEY (" & DB_PRODUCTID & ") REFERENCES " & DB_PRODUCT & " (" & DB_PRODUCTID & "))"
ExecuteQuery(MySqlCommand)
End Sub
Friend Function ExecuteQuery(MySqlQuery As String) As Integer
+2 -1
View File
@@ -21,7 +21,8 @@ Public Class VersionPageVM
Return m_VersionNumber.ToString()
End Get
Set(value As String)
m_VersionNumber = value
Dim nVal As integer
If Integer.TryParse( value, nVal) Then m_VersionNumber = nVal
NotifyPropertyChanged("VersionNumber")
End Set
End Property