/// <summary> /// 지정된 child 부서를 newParent의 하위부서로 이동시킨다. /// </summary> public void ChangeDepartmentParent(Department child, Department newParent) { child.ShouldNotBeNull("child"); var oldParent = child.Parent; if(Equals(oldParent, newParent)) { if(log.IsWarnEnabled) log.Warn("변경할 부모가 현재 부모와 같으므로, 부모 변경 작업을 수행하지 않습니다."); return; } if(IsDebugEnabled) log.Debug("부서의 부모를 변경합니다. child={0}, new parent={1}, old parent={2}", child.Code, (newParent != null) ? newParent.Code : EntityTool.NULL_STRING, (oldParent != null) ? oldParent.Code : EntityTool.NULL_STRING); child.ChangeParent(oldParent, newParent); Repository<Department>.SaveOrUpdate(child); }