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 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