2025-05-09 16:51:31 +02:00

194 lines
8.2 KiB
VB.net

Imports EnvelopeGenerator.Common
Imports EnvelopeGenerator.Common.My
Imports EnvelopeGenerator.Common.Constants
Imports System.ComponentModel
Public Class frmEnvelopeMainData
Private FormLoaded As Boolean = False
Public Property Envelope As Envelope = New Envelope()
Public Property NewEnvelopeMode As Boolean = True
Private Property EnvelopeTypeModel As EnvelopeTypeModel
<Bindable(True)>
Private Property EnvelopeType As New EnvelopeType
Public Property State As State
Public Sub New()
InitializeComponent()
End Sub
Private Sub frmEnvelopeMainData_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
If NewEnvelopeMode = True Then
Me.Text = Resources.Envelope.New_Envelope
Else
Me.Text = Resources.Envelope.Edit_Envelope
cmbEnvelopeType.ReadOnly = True
End If
EnvelopeTypeModel = New EnvelopeTypeModel(State)
Dim oTypes = EnvelopeTypeModel.List()
If oTypes.Count = 0 Then
MsgBox("No templates in Database!", MsgBoxStyle.Exclamation, Text)
Close()
Exit Sub
End If
' Dim oTranslatedVerificationTypeList = VerificationTypeList.Select(AddressOf TranslateVerificationTypeType).ToList()
Dim certificationTypeList = [Enum].GetValues(GetType(CertificationType)).Cast(Of CertificationType)()
Dim oTranslatedCertificationTypeList = certificationTypeList.Select(AddressOf TranslateCertificationType).ToList()
cmbCertificationType.Properties.Items.AddRange(oTranslatedCertificationTypeList)
Dim finalEmailTypeList = [Enum].GetValues(GetType(FinalEmailType)).Cast(Of FinalEmailType)()
Dim oTranslatedFinalEmailTypeList = finalEmailTypeList.Select(AddressOf TranslateFinalEmailType).ToList()
cmbEmailToCreator.Properties.Items.AddRange(oTranslatedFinalEmailTypeList)
cmbEmailToReceivers.Properties.Items.AddRange(oTranslatedFinalEmailTypeList)
cmbEnvelopeType.Properties.Items.AddRange(oTypes.ToList)
cmbLanguage.Properties.Items.AddRange(New List(Of String) From {"de", "en"})
groupAllOptions.Expanded = False
Dim EnvelopeType = oTypes.FirstOrDefault()
If NewEnvelopeMode = True Then
' This will trigger loading values from the type
cmbEnvelopeType.EditValue = EnvelopeType
chked_2Faktor.EditValue = DEF_TF_ENABLED
Else
If IsNothing(Envelope.EnvelopeType) Then
Envelope.EnvelopeType = EnvelopeType
End If
If Envelope.EnvelopeType.ContractType = 0 Then
cmbEnvelopeType.EditValue = EnvelopeType
Else
' This will trigger loading values from the type
cmbEnvelopeType.EditValue = Envelope.EnvelopeType
' cmbEnvelopeType.SelectedIndex = Convert.ToInt32(Envelope.EnvelopeType) - 1
' cmbEnvelopeType.SelectedIndex = Envelope.Type.Id - 1
' cmbEnvelopeType.SelectedItem = cmbEnvelopeType.Properties.Items.Cast(Of EnvelopeType).Where(Function(i) i.Id = Envelope.EnvelopeType.Id).SingleOrDefault()
End If
' Now we can override these values with the values from envelope
txtTitle.EditValue = Envelope.Title
chkUseAccessCode.EditValue = Envelope.UseAccessCode
chked_2Faktor.EditValue = Envelope.TFA_Enabled
cmbCertificationType.SelectedIndex = Convert.ToInt32(Envelope.CertificationType) - 1
cmbEmailToCreator.SelectedIndex = Convert.ToInt32(Envelope.FinalEmailToCreator)
cmbEmailToReceivers.SelectedIndex = Convert.ToInt32(Envelope.FinalEmailToReceivers)
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected Error loading form:")
End Try
End Sub
Private Sub CheckAccessCode()
If Envelope.TFA_Enabled = True Then
chkUseAccessCode.Checked = True
chkUseAccessCode.Enabled = False
Else
chkUseAccessCode.Enabled = True
End If
End Sub
Private Function TranslateCertificationType(pType As CertificationType) As String
Return Resources.Model.ResourceManager.GetString(pType.ToString())
End Function
Private Function TranslateFinalEmailType(pType As FinalEmailType) As String
Return Resources.Model.ResourceManager.GetString(pType.ToString())
End Function
Private Sub btOK_Click(sender As Object, e As EventArgs) Handles btOK.Click
Dim Validator As Validator = New Validator(State.LogConfig, AdornerUIManager1)
Dim oMissingParams = Validator.Validate(txtTitle)
If oMissingParams = True Then
Me.DialogResult = DialogResult.None
txtTitle.Focus()
Return
End If
Dim oEnvelopeType = DirectCast(cmbEnvelopeType.EditValue, EnvelopeType)
If IsNothing(oEnvelopeType) Then
oEnvelopeType = EnvelopeType
End If
Envelope.Title = txtTitle.EditValue.ToString
Envelope.EnvelopeType = oEnvelopeType
Envelope.EnvelopeTypeId = IIf(IsNothing(oEnvelopeType), 0, oEnvelopeType.Id)
Envelope.CertificationType = cmbCertificationType.SelectedIndex + 1
Envelope.Language = cmbLanguage.EditValue
Envelope.UseAccessCode = chkUseAccessCode.EditValue
Envelope.SendReminderEmails = chkSendReminderEmails.EditValue
Envelope.FirstReminderDays = spnFirstReminderDays.EditValue
Envelope.ReminderIntervalDays = spnReminderIntervalDays.EditValue
Envelope.ExpiresWhenDays = spnExpiresDays.EditValue
Envelope.ExpiresWarningWhenDays = spnExpiresWarningDays.EditValue
Envelope.FinalEmailToCreator = cmbEmailToCreator.SelectedIndex
Envelope.FinalEmailToReceivers = cmbEmailToReceivers.SelectedIndex
Envelope.TFA_Enabled = chked_2Faktor.EditValue
' ContractType kann zzt nicht über die Oberfläche gesetzt werden
Envelope.ContractType = ContractType.Contract
End Sub
Private Sub frmEnvelopeMainData_Shown(sender As Object, e As EventArgs) Handles Me.Shown
SetFormHeight()
CheckAccessCode()
FormLoaded = True
End Sub
Private Sub SetFormHeight()
ClientSize = New Size(ClientSize.Width, LayoutControl1.Root.MinSize.Height)
End Sub
Private Sub LayoutControl1_GroupExpandChanged(sender As Object, e As DevExpress.XtraLayout.Utils.LayoutGroupEventArgs) Handles LayoutControl1.GroupExpandChanged
If e.Group.Name = groupAllOptions.Name Then
SetFormHeight()
End If
End Sub
Private Sub cmbContractType_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmbEnvelopeType.SelectedValueChanged
Dim oSelectedType As EnvelopeType = cmbEnvelopeType.SelectedItem
If oSelectedType Is Nothing Then
Exit Sub
End If
EnvelopeType = oSelectedType
cmbLanguage.EditValue = oSelectedType.Language
chkUseAccessCode.EditValue = oSelectedType.UseAccessCode
chkSendReminderEmails.EditValue = oSelectedType.SendReminderEmails
spnFirstReminderDays.EditValue = oSelectedType.FirstReminderDays
spnReminderIntervalDays.EditValue = oSelectedType.ReminderIntervalDays
spnExpiresDays.EditValue = oSelectedType.ExpiresWhenDays
spnExpiresWarningDays.EditValue = oSelectedType.ExpiresWarningWhenDays
cmbCertificationType.SelectedIndex = oSelectedType.CertificationType - 1
cmbEmailToCreator.SelectedIndex = oSelectedType.FinalEmailToCreator
cmbEmailToReceivers.SelectedIndex = oSelectedType.FinalEmailToReceivers
End Sub
Private Sub chked_2Faktor_CheckedChanged(sender As Object, e As EventArgs) Handles chked_2Faktor.CheckedChanged
If FormLoaded = True Then
If chked_2Faktor.Checked = True Then
chkUseAccessCode.Checked = True
chkUseAccessCode.Enabled = False
Else
chkUseAccessCode.Enabled = True
End If
End If
End Sub
End Class