private void lueIDDivision_EditValueChanged(object sender, EventArgs e) { try { this.IDDivision = Convert.ToInt32(lueIDDivision.EditValue); DivisionsBO aDivisionsBO = new DivisionsBO(); Divisions aDivisions = aDivisionsBO.Select_ByID(this.IDDivision); DivisionsEN aTemp = new DivisionsEN(); aTemp.ID = aDivisions.ID; if (this.aSystemUsers_DivisionsEN.aListDivisionsEN.Where(d=>d.ID == this.IDDivision).ToList().Count == 0) { this.aSystemUsers_DivisionsEN.aListDivisionsEN.Add(aTemp); } SystemUsersBO aSystemUsersBO = new SystemUsersBO(); List<SystemUsers> aListTemp = aSystemUsersBO.SelectListAllSystemUsers_ByIDDivision(this.IDDivision); SystemUsers aSystemUsers; foreach (DivisionsEN aDivisionsEN in this.aSystemUsers_DivisionsEN.aListDivisionsEN) { if(aDivisionsEN.ID == this.IDDivision) { if (aDivisionsEN.aListSystemUsers.Count <= 0) { foreach (SystemUsers item in aListTemp) { aSystemUsers = new SystemUsers(); aSystemUsers.ID = item.ID; aSystemUsers.Username = item.Username; aSystemUsers.Name = item.Name; aSystemUsers.Identifier1 = item.Identifier1; aDivisionsEN.aListSystemUsers.Add(aSystemUsers); } } } } List<DivisionsEN> aListTemps = this.aSystemUsers_DivisionsEN.aListDivisionsEN.Where(d => d.ID == this.IDDivision).ToList(); if (aListTemps.Count > 0) { DivisionsEN aDivisionsEN = this.aSystemUsers_DivisionsEN.aListDivisionsEN.Where(d => d.ID == this.IDDivision).ToList()[0]; int Index = this.aSystemUsers_DivisionsEN.aListDivisionsEN.IndexOf(aDivisionsEN); dgvSelectSystemUsers.DataSource = this.aSystemUsers_DivisionsEN.aListDivisionsEN[Index].aListSystemUsers.Distinct(); dgvSelectSystemUsers.RefreshDataSource(); this.aSystemUsers_DivisionsEN.aListDivisionsEN.Clear(); } else { dgvSelectSystemUsers.DataSource = null; dgvSelectSystemUsers.RefreshDataSource(); } } catch (Exception ex) { MessageBox.Show("frmIns_SystemUsers_Divisions.lueIDDivision_EditValueChanged\n" + ex.ToString(), "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); } }