clone method

NsgDataItem clone({
  1. bool cloneAsCopy = false,
  2. List<String>? excludeFields,
})

Create new object with same filelds values cloneAsCopy - после копирования подменить id объектов и вызвать метод заполнения после копирования

Implementation

NsgDataItem clone({bool cloneAsCopy = false, List<String>? excludeFields}) {
  var newItem = getNewObject();
  newItem.copyFieldValues(this, cloneAsCopy: cloneAsCopy, excludeFields: excludeFields);
  newItem.loadTime = loadTime;
  newItem.state = cloneAsCopy ? NsgDataItemState.create : state;
  newItem.docState = cloneAsCopy ? NsgDataItemDocState.created : docState;
  newItem.storageType = storageType;
  // newItem.newTableLogic = newTableLogic;
  if (cloneAsCopy) {
    newItem.copyRecordFill();
    newItem.id = Guid.newGuid();
    newItem.state = NsgDataItemState.create;
    NsgDataClient.client.addItemsToCache(items: [newItem]);
  }
  return newItem;
}