public JsonResult LiquidationDevice(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 trong 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 trong theo thiết bị cha data.LiquidationDevice(v); } //Khi thanh lý 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ị thanh lý"); } } // KHi thanh lý tb con ở ngoài thì xóa mối quan hệ cha con của thiết bị vs 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ị thanh lý"); } } } // Thanh lý thiết bị cha string a = "," + Id + ","; int checkdele = data.LiquidationDevice(a); if (checkdele > 0) { result = true; } } return(Json(result, JsonRequestBehavior.AllowGet)); }