Files
EnvelopeGenerator/EnvelopeGenerator.Form/frmEnvelopeMainData.vb
OlgunR f303ba042b Refactor contract type handling in EnvelopeType entity
Replaced Constants.ContractType enum with integer property in EnvelopeType. Updated related references in EnvelopeEditorController. Removed EnvelopeType variable from ModuleSettings. Made EnvelopeType property bindable and initialized in frmEnvelopeMainData to improve consistency and simplify contract type management.
2026-02-19 13:57:31 +01:00

197 lines
8.3 KiB
VB.net

Imports EnvelopeGenerator.CommonServices
Imports EnvelopeGenerator.CommonServices.My
Imports EnvelopeGenerator.Domain
Imports System.ComponentModel
Imports EnvelopeGenerator.Domain.Constants
Imports EnvelopeGenerator.Domain.Entities
Public Class frmEnvelopeMainData
Private FormLoaded As Boolean = False
Public Property Envelope As Entities.Envelope = New Entities.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(Resources.Envelope.No_template, 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
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, Resources.Envelope.Unexpected_Error)
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 - jetzt sollte es gehen.
Envelope.EnvelopeType = EnvelopeType
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