createAndSetSelectedItem method

Future createAndSetSelectedItem()

Создает новый элемент БД и устанавливает его в текущее selectedItem (currentItem) На время чтерния статус контроллера будет loading

Implementation

Future createAndSetSelectedItem() async {
  currentStatus = GetStatus.loading();
  sendNotify();
  itemsRequested.broadcast();
  try {
    var newItem = await doCreateNewItem();
    //запоминаем текущий элемент в бэкапе на случай отмены редактирования пользователем для возможности
    //сравнить были ли сделаны какие-либо изменения пользователем
    selectedItem = newItem.clone();
    backupItem = newItem;
    await afterRefreshItem(selectedItem!, referenceList);
    currentStatus = GetStatus.success(NsgBaseController.emptyData);
    sendNotify();
    selectedItemChanged.broadcast(null);
    if (this is NsgDataItemController) {
      var controller = (this as NsgDataItemController).getDataItemController(selectedItem!.id);
      controller.selectedItem = selectedItem;
      controller.backupItem = selectedItem;
      controller.sendNotify();
      controller.selectedItemChanged.broadcast(null);
    }
  } on Exception catch (e) {
    _updateStatusError(e);
  }
}