public ValidationResultDto ValidateBeforeUpdate(string id, NhanVienForUpdateDto nhanVien) { var totalSoDienThoai = _context.DanhSachNhanVien.Count(x => x.MaNhanVien != id && x.SoDienThoai.ToLower() == nhanVien.SoDienThoai.ToLower()); var totalSoCMND = _context.DanhSachNhanVien.Count(x => x.MaNhanVien != id && x.SoCMND.ToLower() == nhanVien.SoCMND.ToLower()); IDictionary <string, string[]> Errors = new Dictionary <string, string[]>(); if (totalSoDienThoai > 0 || totalSoCMND > 0) { if (totalSoDienThoai > 0) { Errors.Add("soDienThoai", new string[] { "soDienThoai is duplicated!" }); } if (totalSoCMND > 0) { Errors.Add("soCMND", new string[] { "soCMND is duplicated!" }); } return(new ValidationResultDto { IsValid = false, Errors = Errors }); } else { return(new ValidationResultDto { IsValid = true }); } }
public async Task <NhanVien> UpdateById(string id, NhanVienForUpdateDto nhanVien) { var oldRecord = await _context.DanhSachNhanVien.AsNoTracking().FirstOrDefaultAsync(x => x.MaNhanVien == id); var nhanVienToUpdate = new NhanVien { MaNhanVien = id, TenNhanVien = nhanVien.TenNhanVien, GioiTinh = nhanVien.GioiTinh, NgaySinh = nhanVien.NgaySinh, DiaChi = nhanVien.DiaChi, ChucVu = nhanVien.ChucVu, SoDienThoai = nhanVien.SoDienThoai, SoCMND = nhanVien.SoCMND, Luong = nhanVien.Luong, GhiChu = nhanVien.GhiChu, ThoiGianTao = oldRecord.ThoiGianTao, ThoiGianCapNhat = DateTime.Now, TrangThai = nhanVien.TrangThai }; _context.DanhSachNhanVien.Update(nhanVienToUpdate); await _context.SaveChangesAsync(); return(nhanVienToUpdate); }
public async Task <IActionResult> UpdateById(string id, NhanVienForUpdateDto nhanVien) { try { var validationResult = _repo.ValidateBeforeUpdate(id, nhanVien); if (validationResult.IsValid) { var result = await _repo.UpdateById(id, nhanVien); 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 } })); } }