private void ShowDeitalSettingDialog() { using (var form = ApplicationContext.Create(nameof(PC1602))) { var staffId = SettingHeader.StaffId; if (staffId == 0) { staffId = CustomerSelected.StaffId; } var staff = Staffs.First(x => x.Id == staffId); var departmentId = SettingHeader.DepartmentId; if (departmentId == 0) { departmentId = staff.DepartmentId; } var department = Departments.First(x => x.Id == departmentId); var screen = form.GetAll <PC1602>().First(); #region initialize PC1602 header/setting values screen.datBilledAt.Value = datBilledAt.Value; screen.datSalesAt.Value = datSalesAt.Value; screen.datClosingAt.Value = datClosingAt.Value; screen.datDueAt.Value = datDueAt.Value; screen.txtCustomerCode.Text = txtCustomerCode.Text; screen.lblCustomerName.Text = lblCustomerName.Text; screen.CustomerSelected = CustomerSelected; screen.txtDestinationCode.Text = txtDestinationCode.Text; screen.lblDestinationName.Text = lblDestinationName.Text; screen.txtInvoiceCode.Text = txtInvoiceCode.Text; screen.txtStaffCode.Text = staff.Code; screen.lblStaffName.Text = staff.Name; screen.txtDepartmentCode.Text = department.Code; screen.lblDepartmentName.Text = department.Name; screen.Note1Enabled = rdoSetFixedValueToNote1.Checked; screen.Note2Enabled = rdoSetFixedValueToNote2.Checked; screen.SettingHeader = SettingHeader; #endregion if (ApplicationContext.ShowDialog(ParentForm, form) != DialogResult.OK) { return; } SettingHeader.DepartmentId = Departments.First(x => x.Code == screen.txtDepartmentCode.Text).Id; SettingHeader.StaffId = Staffs.First(x => x.Code == screen.txtStaffCode.Text).Id; SettingHeader.CollectCategoryId = (int)screen.cmbCollectCategory.SelectedItem.SubItems[1].Value; SettingHeader.CurrencyId = Currencies.First(x => x.Code == screen.txtCurrencyCode.Text).Id; SettingHeader.Details = screen.GetBillingsFromGrid() .Select((x, index) => { x.DisplayOrder = index + 1; return(x); }).ToList(); SetDetailInputStatus(); } }