public async Task <IActionResult> UpdateById(string id, SanBongForUpdateDto sanBong) { try { var validationResult = _repo.ValidateBeforeUpdate(id, sanBong); if (validationResult.IsValid) { var result = await _repo.UpdateById(id, sanBong); 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 ValidationResultDto ValidateBeforeUpdate(string id, SanBongForUpdateDto sanBong) { var totalTenSanBong = _context.DanhSachSanBong.Count(x => (x.MaSanBong != id) && (x.TenSanBong.ToLower() == sanBong.TenSanBong.ToLower())); IDictionary <string, string[]> Errors = new Dictionary <string, string[]>(); if (totalTenSanBong > 0) { Errors.Add("tenSanBong", new string[] { "tenSanBong is duplicated!" }); return(new ValidationResultDto { IsValid = false, Errors = Errors }); } else { return(new ValidationResultDto { IsValid = true }); } }
public async Task <SanBong> UpdateById(string id, SanBongForUpdateDto sanBong) { var oldRecord = await _context.DanhSachSanBong.AsNoTracking().FirstOrDefaultAsync(x => x.MaSanBong == id); var sanBongToUpdate = new SanBong { MaSanBong = id, TenSanBong = sanBong.TenSanBong, ChieuDai = sanBong.ChieuDai, ChieuRong = sanBong.ChieuRong, GhiChu = sanBong.GhiChu, ThoiGianTao = oldRecord.ThoiGianTao, ThoiGianCapNhat = DateTime.Now, TrangThai = sanBong.TrangThai }; sanBongToUpdate.DienTich = sanBong.ChieuDai * sanBong.ChieuRong; _context.DanhSachSanBong.Update(sanBongToUpdate); await _context.SaveChangesAsync(); return(sanBongToUpdate); }