public async Task <IActionResult> EditOrCreate(string id) { bool check = true; if (ModelState.IsValid) { CTHoaDonViewIMEIVM.chiTietHoaDon = await _mb.ChiTietHoaDon.SingleOrDefaultAsync(ct => (ct.MaHD.ToString() + ct.MaDT.ToString()).Equals(id)); CTHoaDonViewIMEIVM.iMEI_DienThoais = await _mb.IMEI_DienThoai.Where(ct => (ct.MaHD.ToString() + ct.MaDT.ToString()).Equals(id)).ToListAsync(); foreach (var im in CTHoaDonViewIMEIVM.iMEI_DienThoais) { _mb.Attach(im); _mb.Remove(im); } string location = ""; for (int i = 0; i < CTHoaDonViewIMEIVM.chiTietHoaDon.SoLuong; i++) { location = CTHoaDonViewIMEIVM.chiTietHoaDon.MaDT.ToString() + i.ToString(); string IMEI = Request.Form[location]; if (_mb.IMEI_DienThoai.Where(im => (im.IMEI == IMEI) && !(im.MaHD.ToString() + im.MaDT.ToString()).Equals(id)).SingleOrDefault() != null) { check = false; TempData[location] = "Trùng IMEI vui lòng thử lại"; } else { TempData[location] = IMEI; } } try { if (!check) { throw new Exception(); } for (int i = 0; i < CTHoaDonViewIMEIVM.chiTietHoaDon.SoLuong; i++) { location = CTHoaDonViewIMEIVM.chiTietHoaDon.MaDT.ToString() + i.ToString(); string IMEI = Request.Form[location]; IMEI_DienThoai iMEI_DienThoai = new IMEI_DienThoai() { IMEI = IMEI, MaDT = CTHoaDonViewIMEIVM.chiTietHoaDon.MaDT, MaHD = CTHoaDonViewIMEIVM.chiTietHoaDon.MaHD }; _mb.Add(iMEI_DienThoai); } await _mb.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } catch { TempData["message"] = "Fail"; TempData[location] = "Trùng IMEI vui lòng thử lại"; return(RedirectToAction("Edit", new { id })); } } return(RedirectToAction("Edit", new { id })); }