Imports EnvelopeGenerator.Common Imports EnvelopeGenerator.Common.My Imports EnvelopeGenerator.Common.Constants Imports System.ComponentModel Public Class frmEnvelopeMainData Public Property Envelope As Envelope = New 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 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 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 If NewEnvelopeMode = True Then Dim oType = oTypes.FirstOrDefault() ' This will trigger loading values from the type cmbEnvelopeType.EditValue = oType 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() ' Now we can override these values with the values from envelope txtTitle.EditValue = Envelope.Title chkUseAccessCode.EditValue = Envelope.UseAccessCode cmbCertificationType.SelectedIndex = Convert.ToInt32(Envelope.CertificationType) - 1 cmbEmailToCreator.SelectedIndex = Convert.ToInt32(Envelope.FinalEmailToCreator) cmbEmailToReceivers.SelectedIndex = Convert.ToInt32(Envelope.FinalEmailToReceivers) 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 ' 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() 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 End Class