createNewItemAsync method

Future<T> createNewItemAsync()

Создает новый элемент. Используется, например, при нажатии добавить в форме списка На время создания (так как оно может быть связано с запросом на сервер) устанавливает статус контроллера в loading Для непосредственного создания нового элемента вызывает асинхронный метод doCreateNewItem, который может быть перекрыт для организации бизнес-логики запросов

Implementation

Future<T> createNewItemAsync() async {
  currentStatus = GetStatus.loading();
  sendNotify();
  try {
    var elem = await doCreateNewItem();
    currentStatus = GetStatus.success(NsgBaseController.emptyData);
    currentItem = elem.clone() as T;

    backupItem = elem;
    sendNotify();
    selectedItemChanged.broadcast(null);
    return currentItem;
  } catch (e) {
    var msg = '';
    if (e is NsgApiException && e.error.message != null) {
      msg = e.error.message!;
    }
    currentStatus = GetStatus.error(msg);
    sendNotify();
  }
  return NsgDataClient.client.getNewObject(dataType) as T;
}