From ebef306a72d7c0869dd3f6f6be744a02f90efa5a Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Fri, 11 Jun 2021 15:43:04 +0200 Subject: [PATCH] ConfigCreator: Signature Generator --- ConfigCreator/Config.vb | 1 + ConfigCreator/MonoRepoUtils.vbproj | 7 ++ .../My Project/Resources.Designer.vb | 10 ++ ConfigCreator/My Project/Resources.resx | 7 +- ConfigCreator/Resources/save as.svg | 11 ++ ConfigCreator/frmStart.Designer.vb | 95 ++++++++++++++---- ConfigCreator/frmStart.resx | 3 + ConfigCreator/frmStart.vb | 57 +++++++++-- ConfigCreator/mail.ico | Bin 0 -> 22486 bytes 9 files changed, 161 insertions(+), 30 deletions(-) create mode 100644 ConfigCreator/Resources/save as.svg create mode 100644 ConfigCreator/mail.ico diff --git a/ConfigCreator/Config.vb b/ConfigCreator/Config.vb index df1ba07c..bacbb3e1 100644 --- a/ConfigCreator/Config.vb +++ b/ConfigCreator/Config.vb @@ -8,6 +8,7 @@ Public OutputPath As String = "" Public TrackingLink As String = "" Public ActiveDirectoryGroup As String = "" + Public ActiveDirectoryRoot As String = "" End Class End Class diff --git a/ConfigCreator/MonoRepoUtils.vbproj b/ConfigCreator/MonoRepoUtils.vbproj index 05d766db..925add12 100644 --- a/ConfigCreator/MonoRepoUtils.vbproj +++ b/ConfigCreator/MonoRepoUtils.vbproj @@ -47,6 +47,9 @@ On + + mail.ico + @@ -154,5 +157,9 @@ + + + + \ No newline at end of file diff --git a/ConfigCreator/My Project/Resources.Designer.vb b/ConfigCreator/My Project/Resources.Designer.vb index e8e5847e..06c64bc1 100644 --- a/ConfigCreator/My Project/Resources.Designer.vb +++ b/ConfigCreator/My Project/Resources.Designer.vb @@ -89,5 +89,15 @@ Namespace My.Resources Return CType(obj,DevExpress.Utils.Svg.SvgImage) End Get End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property save_as() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("save as", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property End Module End Namespace diff --git a/ConfigCreator/My Project/Resources.resx b/ConfigCreator/My Project/Resources.resx index 0ac49a57..946484ad 100644 --- a/ConfigCreator/My Project/Resources.resx +++ b/ConfigCreator/My Project/Resources.resx @@ -121,10 +121,13 @@ ..\Resources\defaultprinter.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\defaultprinter1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\3trafficlightsrimmed.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\defaultprinter1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\save as.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/ConfigCreator/Resources/save as.svg b/ConfigCreator/Resources/save as.svg new file mode 100644 index 00000000..7aa83987 --- /dev/null +++ b/ConfigCreator/Resources/save as.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/ConfigCreator/frmStart.Designer.vb b/ConfigCreator/frmStart.Designer.vb index 595e80da..32bb1a9b 100644 --- a/ConfigCreator/frmStart.Designer.vb +++ b/ConfigCreator/frmStart.Designer.vb @@ -21,6 +21,7 @@ Partial Class frmStart 'Do not modify it using the code editor. Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() Me.ComboBoxEdit1 = New DevExpress.XtraEditors.ComboBoxEdit() Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl() Me.MemoEdit1 = New DevExpress.XtraEditors.MemoEdit() @@ -31,19 +32,21 @@ Partial Class frmStart Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem() Me.FluentDesignFormContainer1 = New DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormContainer() Me.XtraTabControl1 = New DevExpress.XtraTab.XtraTabControl() - Me.XtraTabPage1 = New DevExpress.XtraTab.XtraTabPage() Me.XtraTabPage2 = New DevExpress.XtraTab.XtraTabPage() Me.LayoutControl2 = New DevExpress.XtraLayout.LayoutControl() Me.txxTemplate = New DevExpress.XtraEditors.MemoEdit() Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() + Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() + Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() Me.txtBannerUrl = New DevExpress.XtraEditors.TextEdit() Me.txtTrackingUrl = New DevExpress.XtraEditors.TextEdit() Me.txtOutputPath = New DevExpress.XtraEditors.TextEdit() Me.txtADGroup = New DevExpress.XtraEditors.TextEdit() Me.SimpleButton2 = New DevExpress.XtraEditors.SimpleButton() + Me.txtADRoot = New DevExpress.XtraEditors.TextEdit() Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup() Me.LayoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem5 = New DevExpress.XtraLayout.LayoutControlItem() @@ -51,7 +54,10 @@ Partial Class frmStart Me.LayoutControlItem8 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem7 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem9 = New DevExpress.XtraLayout.LayoutControlItem() + Me.LayoutControlItem10 = New DevExpress.XtraLayout.LayoutControlItem() + Me.XtraTabPage1 = New DevExpress.XtraTab.XtraTabPage() Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() + Me.BehaviorManager1 = New DevExpress.Utils.Behaviors.BehaviorManager(Me.components) CType(Me.ComboBoxEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit() Me.LayoutControl1.SuspendLayout() @@ -63,7 +69,6 @@ Partial Class frmStart Me.FluentDesignFormContainer1.SuspendLayout() CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).BeginInit() Me.XtraTabControl1.SuspendLayout() - Me.XtraTabPage1.SuspendLayout() Me.XtraTabPage2.SuspendLayout() CType(Me.LayoutControl2, System.ComponentModel.ISupportInitialize).BeginInit() Me.LayoutControl2.SuspendLayout() @@ -73,6 +78,7 @@ Partial Class frmStart CType(Me.txtTrackingUrl.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.txtOutputPath.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.txtADGroup.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtADRoot.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).BeginInit() @@ -80,6 +86,9 @@ Partial Class frmStart CType(Me.LayoutControlItem8, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem9, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem10, System.ComponentModel.ISupportInitialize).BeginInit() + Me.XtraTabPage1.SuspendLayout() + CType(Me.BehaviorManager1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'ComboBoxEdit1 @@ -178,17 +187,10 @@ Partial Class frmStart Me.XtraTabControl1.Dock = System.Windows.Forms.DockStyle.Fill Me.XtraTabControl1.Location = New System.Drawing.Point(0, 0) Me.XtraTabControl1.Name = "XtraTabControl1" - Me.XtraTabControl1.SelectedTabPage = Me.XtraTabPage1 + Me.XtraTabControl1.SelectedTabPage = Me.XtraTabPage2 Me.XtraTabControl1.Size = New System.Drawing.Size(1101, 414) Me.XtraTabControl1.TabIndex = 0 - Me.XtraTabControl1.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.XtraTabPage1, Me.XtraTabPage2}) - ' - 'XtraTabPage1 - ' - Me.XtraTabPage1.Controls.Add(Me.LayoutControl1) - Me.XtraTabPage1.Name = "XtraTabPage1" - Me.XtraTabPage1.Size = New System.Drawing.Size(1099, 391) - Me.XtraTabPage1.Text = "ConfigCreator" + Me.XtraTabControl1.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.XtraTabPage2, Me.XtraTabPage1}) ' 'XtraTabPage2 ' @@ -205,6 +207,7 @@ Partial Class frmStart Me.LayoutControl2.Controls.Add(Me.txtOutputPath) Me.LayoutControl2.Controls.Add(Me.txtADGroup) Me.LayoutControl2.Controls.Add(Me.SimpleButton2) + Me.LayoutControl2.Controls.Add(Me.txtADRoot) Me.LayoutControl2.Dock = System.Windows.Forms.DockStyle.Fill Me.LayoutControl2.Location = New System.Drawing.Point(0, 0) Me.LayoutControl2.Name = "LayoutControl2" @@ -215,19 +218,21 @@ Partial Class frmStart ' 'txxTemplate ' - Me.txxTemplate.Location = New System.Drawing.Point(135, 126) + Me.txxTemplate.Location = New System.Drawing.Point(135, 140) Me.txxTemplate.MenuManager = Me.RibbonControl1 Me.txxTemplate.Name = "txxTemplate" - Me.txxTemplate.Size = New System.Drawing.Size(944, 245) + Me.txxTemplate.Properties.Appearance.Font = New System.Drawing.Font("Consolas", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txxTemplate.Properties.Appearance.Options.UseFont = True + Me.txxTemplate.Size = New System.Drawing.Size(944, 231) Me.txxTemplate.StyleController = Me.LayoutControl2 Me.txxTemplate.TabIndex = 4 ' 'RibbonControl1 ' Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1}) + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1, Me.BarButtonItem2}) Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 2 + Me.RibbonControl1.MaxItemId = 4 Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) Me.RibbonControl1.Size = New System.Drawing.Size(1101, 159) @@ -240,11 +245,25 @@ Partial Class frmStart Me.BarButtonItem1.ImageOptions.SvgImage = Global.DigitalData.GUIs.MonoRepoUtils.My.Resources.Resources.defaultprinter Me.BarButtonItem1.Name = "BarButtonItem1" ' + 'BarButtonItem2 + ' + Me.BarButtonItem2.Caption = "Speichern" + Me.BarButtonItem2.Id = 3 + Me.BarButtonItem2.ImageOptions.SvgImage = Global.DigitalData.GUIs.MonoRepoUtils.My.Resources.Resources.save_as + Me.BarButtonItem2.Name = "BarButtonItem2" + ' 'RibbonPage1 ' + Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1}) Me.RibbonPage1.Name = "RibbonPage1" Me.RibbonPage1.Text = "RibbonPage1" ' + 'RibbonPageGroup1 + ' + Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem2) + Me.RibbonPageGroup1.Name = "RibbonPageGroup1" + Me.RibbonPageGroup1.Text = "Email Einstellungen" + ' 'RibbonStatusBar1 ' Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 573) @@ -300,11 +319,20 @@ Partial Class frmStart Me.SimpleButton2.TabIndex = 9 Me.SimpleButton2.Text = "Generate!" ' + 'txtADRoot + ' + Me.txtADRoot.Location = New System.Drawing.Point(135, 100) + Me.txtADRoot.MenuManager = Me.RibbonControl1 + Me.txtADRoot.Name = "txtADRoot" + Me.txtADRoot.Size = New System.Drawing.Size(361, 20) + Me.txtADRoot.StyleController = Me.LayoutControl2 + Me.txtADRoot.TabIndex = 10 + ' 'LayoutControlGroup1 ' Me.LayoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] Me.LayoutControlGroup1.GroupBordersVisible = False - Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem4, Me.LayoutControlItem5, Me.LayoutControlItem6, Me.LayoutControlItem8, Me.LayoutControlItem7, Me.LayoutControlItem9}) + Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem4, Me.LayoutControlItem5, Me.LayoutControlItem6, Me.LayoutControlItem8, Me.LayoutControlItem7, Me.LayoutControlItem9, Me.LayoutControlItem10}) Me.LayoutControlGroup1.Name = "LayoutControlGroup1" Me.LayoutControlGroup1.Size = New System.Drawing.Size(1099, 391) Me.LayoutControlGroup1.TextVisible = False @@ -312,10 +340,10 @@ Partial Class frmStart 'LayoutControlItem4 ' Me.LayoutControlItem4.Control = Me.txxTemplate - Me.LayoutControlItem4.Location = New System.Drawing.Point(0, 106) + Me.LayoutControlItem4.Location = New System.Drawing.Point(0, 120) Me.LayoutControlItem4.Name = "LayoutControlItem4" Me.LayoutControlItem4.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem4.Size = New System.Drawing.Size(1079, 265) + Me.LayoutControlItem4.Size = New System.Drawing.Size(1079, 251) Me.LayoutControlItem4.Text = "HTML Template" Me.LayoutControlItem4.TextSize = New System.Drawing.Size(112, 13) ' @@ -345,7 +373,7 @@ Partial Class frmStart Me.LayoutControlItem8.Location = New System.Drawing.Point(0, 40) Me.LayoutControlItem8.Name = "LayoutControlItem8" Me.LayoutControlItem8.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem8.Size = New System.Drawing.Size(496, 66) + Me.LayoutControlItem8.Size = New System.Drawing.Size(496, 40) Me.LayoutControlItem8.Text = "ActiveDirectory Group" Me.LayoutControlItem8.TextSize = New System.Drawing.Size(112, 13) ' @@ -364,10 +392,27 @@ Partial Class frmStart Me.LayoutControlItem9.Control = Me.SimpleButton2 Me.LayoutControlItem9.Location = New System.Drawing.Point(496, 80) Me.LayoutControlItem9.Name = "LayoutControlItem9" - Me.LayoutControlItem9.Size = New System.Drawing.Size(583, 26) + Me.LayoutControlItem9.Size = New System.Drawing.Size(583, 40) Me.LayoutControlItem9.TextSize = New System.Drawing.Size(0, 0) Me.LayoutControlItem9.TextVisible = False ' + 'LayoutControlItem10 + ' + Me.LayoutControlItem10.Control = Me.txtADRoot + Me.LayoutControlItem10.Location = New System.Drawing.Point(0, 80) + Me.LayoutControlItem10.Name = "LayoutControlItem10" + Me.LayoutControlItem10.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) + Me.LayoutControlItem10.Size = New System.Drawing.Size(496, 40) + Me.LayoutControlItem10.Text = "Active Directory Root" + Me.LayoutControlItem10.TextSize = New System.Drawing.Size(112, 13) + ' + 'XtraTabPage1 + ' + Me.XtraTabPage1.Controls.Add(Me.LayoutControl1) + Me.XtraTabPage1.Name = "XtraTabPage1" + Me.XtraTabPage1.Size = New System.Drawing.Size(1099, 391) + Me.XtraTabPage1.Text = "ConfigCreator" + ' 'RibbonPage2 ' Me.RibbonPage2.Name = "RibbonPage2" @@ -397,7 +442,6 @@ Partial Class frmStart Me.FluentDesignFormContainer1.ResumeLayout(False) CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).EndInit() Me.XtraTabControl1.ResumeLayout(False) - Me.XtraTabPage1.ResumeLayout(False) Me.XtraTabPage2.ResumeLayout(False) CType(Me.LayoutControl2, System.ComponentModel.ISupportInitialize).EndInit() Me.LayoutControl2.ResumeLayout(False) @@ -407,6 +451,7 @@ Partial Class frmStart CType(Me.txtTrackingUrl.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.txtOutputPath.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.txtADGroup.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtADRoot.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).EndInit() @@ -414,6 +459,9 @@ Partial Class frmStart CType(Me.LayoutControlItem8, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem9, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem10, System.ComponentModel.ISupportInitialize).EndInit() + Me.XtraTabPage1.ResumeLayout(False) + CType(Me.BehaviorManager1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() @@ -450,4 +498,9 @@ Partial Class frmStart Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem Friend WithEvents SimpleButton2 As SimpleButton Friend WithEvents LayoutControlItem9 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents txtADRoot As TextEdit + Friend WithEvents LayoutControlItem10 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents BehaviorManager1 As DevExpress.Utils.Behaviors.BehaviorManager + Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup End Class diff --git a/ConfigCreator/frmStart.resx b/ConfigCreator/frmStart.resx index 1af7de15..c8b29d94 100644 --- a/ConfigCreator/frmStart.resx +++ b/ConfigCreator/frmStart.resx @@ -117,4 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + \ No newline at end of file diff --git a/ConfigCreator/frmStart.vb b/ConfigCreator/frmStart.vb index 27859cb1..cf5bcfcc 100644 --- a/ConfigCreator/frmStart.vb +++ b/ConfigCreator/frmStart.vb @@ -3,6 +3,7 @@ Imports System.Xml.Serialization Imports DigitalData.Modules.Config Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Interfaces +Imports DigitalData.GUIs.MonoRepoUtils.Config Public Class frmStart Private Const ZUGFERD_SERVICE = "ZUGFERD_SERVICE" @@ -14,22 +15,20 @@ Public Class frmStart Private LogConfig As LogConfig Private Config As ConfigManager(Of Config) - Private ActiveDir As ActiveDirectoryInterface - Private Sub frmStart_Load(sender As Object, e As EventArgs) Handles MyBase.Load ComboBoxEdit1.Properties.Items.Clear() ComboBoxEdit1.Properties.Items.AddRange(Configs) - LogConfig = New LogConfig(LogConfig.PathType.Temp, Nothing, Nothing, "Digital Data", "Monorepo Utils") + LogConfig = New LogConfig(LogConfig.PathType.CustomPath, Application.StartupPath, Nothing, "Digital Data", "Monorepo Utils") Config = New ConfigManager(Of Config)(LogConfig, Application.CommonAppDataPath) - ActiveDir = New ActiveDirectoryInterface(LogConfig) txxTemplate.Text = Config.Config.EmailTemplate.BaseHtml txtBannerUrl.Text = Config.Config.EmailTemplate.BannerUrl txtTrackingUrl.Text = Config.Config.EmailTemplate.TrackingLink txtOutputPath.Text = Config.Config.EmailTemplate.OutputPath txtADGroup.Text = Config.Config.EmailTemplate.ActiveDirectoryGroup + txtADRoot.Text = Config.Config.EmailTemplate.ActiveDirectoryRoot End Sub Private Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles SimpleButton1.Click @@ -58,16 +57,60 @@ Public Class frmStart End Function Private Sub frmStart_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing + SaveSettings() + End Sub + + Private Sub SimpleButton2_Click(sender As Object, e As EventArgs) Handles SimpleButton2.Click + Dim ActiveDir = New ActiveDirectoryInterface(LogConfig, Config.Config.EmailTemplate.ActiveDirectoryRoot) + Dim oCustomAttributes As New List(Of AttributeMapping) From { + New AttributeMapping With {.AttributeName = "title", .FirebirdSyskey = "", .MSSQLColumn = ""} + } + Dim oUsers = ActiveDir.ListUsers(Config.Config.EmailTemplate.ActiveDirectoryGroup, oCustomAttributes) + MsgBox(oUsers.Count & " users found.", MsgBoxStyle.Information, "Yo") + + Try + For Each oUser As ADUser In oUsers + Dim oHtml As String = GenerateSignatureFileFromTemplate(oUser, Config.Config.EmailTemplate) + Dim oOutputPath = Config.Config.EmailTemplate.OutputPath + Dim oFilePath As String = Path.Combine(oOutputPath, $"Signatur-{oUser.samAccountName}.html") + + If Not Directory.Exists(oOutputPath) Then + Directory.CreateDirectory(oOutputPath) + End If + + If File.Exists(oFilePath) Then + File.Copy(oFilePath, oFilePath & "." & Now.ToString("yyyy-MM-dd")) + End If + + File.WriteAllText(oFilePath, oHtml) + Next + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Signature Generator") + End Try + End Sub + + Private Function GenerateSignatureFileFromTemplate(User As ADUser, EmailTemplateConfig As EmailTemplateConfig) + Dim oJobTitle = User.CustomAttributes.Where(Function(a) a.Name = "title").Single().Value + + Return EmailTemplateConfig.BaseHtml. + Replace("__FULL_NAME__", $"{User.GivenName} {User.Surname}"). + Replace("__JOB_TITLE__", oJobTitle). + Replace("__MAIL_ADDRESS__", User.Email). + Replace("__BANNER_URL__", EmailTemplateConfig.BannerUrl). + Replace("__TRACKER_URL__", EmailTemplateConfig.TrackingLink) + End Function + + Private Sub SaveSettings() Config.Config.EmailTemplate.BaseHtml = txxTemplate.Text Config.Config.EmailTemplate.BannerUrl = txtBannerUrl.Text Config.Config.EmailTemplate.TrackingLink = txtTrackingUrl.Text Config.Config.EmailTemplate.OutputPath = txtOutputPath.Text Config.Config.EmailTemplate.ActiveDirectoryGroup = txtADGroup.Text + Config.Config.EmailTemplate.ActiveDirectoryRoot = txtADRoot.Text Config.Save() End Sub - Private Sub SimpleButton2_Click(sender As Object, e As EventArgs) Handles SimpleButton2.Click - Dim oUsers = ActiveDir.ListUsers(Config.Config.EmailTemplate.ActiveDirectoryGroup) - MsgBox(oUsers.Count & " found.", MsgBoxStyle.Information, "Yo") + Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick + SaveSettings() End Sub End Class \ No newline at end of file diff --git a/ConfigCreator/mail.ico b/ConfigCreator/mail.ico new file mode 100644 index 0000000000000000000000000000000000000000..ada36d34cce9856ce7d4966b58fe50ad8d1342b8 GIT binary patch literal 22486 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