public ValidationResultDto ValidateBeforeUpdate(int id, QuyDinhForUpdateDto quyDinh) { var totalTenQuyDinh = _context.DanhSachQuyDinh.Count(x => x.MaQuyDinh != id && x.TenQuyDinh.ToLower() == quyDinh.TenQuyDinh.ToLower()); var totalThoiGianBatDauHieuLuc = _context.DanhSachQuyDinh.Count(x => x.MaQuyDinh != id && x.ThoiGianBatDauHieuLuc == quyDinh.ThoiGianBatDauHieuLuc); IDictionary <string, string[]> Errors = new Dictionary <string, string[]>(); if (totalTenQuyDinh > 0 || totalThoiGianBatDauHieuLuc > 0) { if (totalTenQuyDinh > 0) { Errors.Add("tenQuyDinh", new string[] { "tenQuyDinh is duplicated!" }); } if (totalThoiGianBatDauHieuLuc > 0) { Errors.Add("thoiGianBatDauHieuLuc", new string[] { "thoiGianBatDauHieuLuc is duplicated!" }); } return(new ValidationResultDto { IsValid = false, Errors = Errors }); } else { return(new ValidationResultDto { IsValid = true }); } }
public async Task <IActionResult> UpdateById(int id, QuyDinhForUpdateDto quyDinh) { try { var validationResult = _repo.ValidateBeforeUpdate(id, quyDinh); if (validationResult.IsValid) { var result = await _repo.UpdateById(id, quyDinh); return(StatusCode(200, new SuccessResponseDto { Message = "Cập nhật " + _entityName + " thành công!", Result = new SuccessResponseResultWithSingleDataDto { Data = result } })); } else { return(StatusCode(500, new FailedResponseDto { Message = "Cập nhật " + _entityName + " mới thất bại!", Result = new FailedResponseResultDto { Errors = validationResult.Errors } })); } } catch (Exception e) { return(StatusCode(500, new FailedResponseDto { Message = "Cập nhật " + _entityName + " thất bại!", Result = new FailedResponseResultDto { Errors = e } })); } }
public async Task <QuyDinh> UpdateById(int id, QuyDinhForUpdateDto quyDinh) { var oldRecord = await _context.DanhSachQuyDinh.AsNoTracking().FirstOrDefaultAsync(x => x.MaQuyDinh == id); var quyDinhToUpdate = new QuyDinh(); quyDinhToUpdate.MaQuyDinh = id; quyDinhToUpdate.TenQuyDinh = quyDinh.TenQuyDinh; quyDinhToUpdate.ThoiGianBatDauHieuLuc = quyDinh.ThoiGianBatDauHieuLuc; quyDinhToUpdate.SoSVTHToiThieu = quyDinh.SoSVTHToiThieu; quyDinhToUpdate.SoSVTHToiDa = quyDinh.SoSVTHToiDa; quyDinhToUpdate.SoGVHDToiThieu = quyDinh.SoGVHDToiThieu; quyDinhToUpdate.SoGVHDToiDa = quyDinh.SoGVHDToiDa; quyDinhToUpdate.SoGVPBToiThieu = quyDinh.SoGVPBToiThieu; quyDinhToUpdate.SoGVPBToiDa = quyDinh.SoGVPBToiDa; quyDinhToUpdate.SoTVHDToiThieu = quyDinh.SoTVHDToiThieu; quyDinhToUpdate.SoTVHDToiDa = quyDinh.SoTVHDToiDa; quyDinhToUpdate.SoCTHDToiThieu = quyDinh.SoCTHDToiThieu; quyDinhToUpdate.SoCTHDToiDa = quyDinh.SoCTHDToiDa; quyDinhToUpdate.SoTKHDToiThieu = quyDinh.SoTKHDToiThieu; quyDinhToUpdate.SoTKHDToiDa = quyDinh.SoTKHDToiDa; quyDinhToUpdate.SoUVHDToiThieu = quyDinh.SoUVHDToiThieu; quyDinhToUpdate.SoUVHDToiDa = quyDinh.SoUVHDToiDa; quyDinhToUpdate.SoChuSoThapPhan = quyDinh.SoChuSoThapPhan; quyDinhToUpdate.DiemSoToiThieu = quyDinh.DiemSoToiThieu; quyDinhToUpdate.DiemSoToiDa = quyDinh.DiemSoToiDa; quyDinhToUpdate.HeSoGVHD = quyDinh.HeSoGVHD; quyDinhToUpdate.HeSoGVPB = quyDinh.HeSoGVPB; quyDinhToUpdate.HeSoTVHD = quyDinh.HeSoTVHD; quyDinhToUpdate.ThoiGianTao = oldRecord.ThoiGianTao; quyDinhToUpdate.ThoiGianCapNhat = DateTime.Now; quyDinhToUpdate.TrangThai = 1; _context.DanhSachQuyDinh.Update(quyDinhToUpdate); await _context.SaveChangesAsync(); return(quyDinhToUpdate); }