public JsonResult DeleteDevice(string Id) { bool result = true; var check = 0; var IdParent = Id.Split(','); for (int i = 0; i < IdParent.Length; i++) { // Kiểm tra có tồn tại thiết bị con nằm trong thiết bị cha var IdCom = Convert.ToInt32(IdParent[i]); check += data.DeviceDevices.Where(x => x.DeviceCodeChildren == IdCom & x.IsDeleted == false & x.TypeComponant == 1).Select(x => x.DeviceCodeChildren).Count(); } if (check > 0) { result = false; } else { // Lấy danh sách thiết bị con từ danh sách thiết bị cha for (int i = 0; i < IdParent.Length; i++) { var IdP = Convert.ToInt32(IdParent[i]); var lstComponant = data.DeviceDevices.Where(x => x.DeviceCodeParents == IdP & x.IsDeleted == false & x.TypeComponant == 1).Select(x => x.DeviceCodeChildren).ToList(); foreach (var item in lstComponant) { string v = "," + item + ","; // Thanh lý thiết bị con theo thiết bị cha data.DeleteDevice1(v); } //Khi xóa TB cha thì Gỡ thiết bị con ngoài khỏi thiết bị cha var lstComponant_out = data.DeviceDevices.Where(x => x.DeviceCodeParents == IdP & x.IsDeleted == false & x.TypeComponant == 0).Select(x => x.DeviceCodeChildren).ToList(); { foreach (var item in lstComponant_out) { data.DeleteDeviceOfDevice(IdP, item, "Thiết bị cha bị xóa"); } } // KHi xóa tb con ở ngoài thì xóa mối quan hệ cha con của thiết bị cha còn hoạt động var lstParent = data.DeviceDevices.Where(x => x.DeviceCodeChildren == IdP & x.IsDeleted == false & x.TypeComponant == 0).Select(x => x.DeviceCodeParents).ToList(); { foreach (var item in lstParent) { data.DeleteDeviceOfDevice(item, IdP, "Thiết bị con bị xóa"); } } } string a = "," + Id + ","; int checkdele = data.DeleteDevice1(a); if (checkdele > 0) { result = true; } } return(Json(result, JsonRequestBehavior.AllowGet)); }