save method

Future<Form?> save({
  1. bool previouslyValidated = false,
  2. bool validation = false,
})

Implementation

Future<hive_form.Form?> save(
    {bool previouslyValidated = false, bool validation = false}) async {
  hive_form.Form? form;

  bool ok = validation;

  // Validate the Data
  if (!previouslyValidated) {
    ok = (await validate() == null);
  }

  // Show Success
  if (ok) {
    // Serialize the Form
    await serialize(element, fields);

    // Serialize Outer Xml
    String xml = framework!.element!.toXmlString(pretty: true);

    // Lookup Form
    form = await hive_form.Form.find(framework!.key);

    // Update the Form
    if (form != null) {
      Log().info('Updating Form');

      form.complete = completed;
      form.updated = DateTime.now().millisecondsSinceEpoch;
      form.template = xml;
      form.data = map;
      await form.update();
    }

    // Insert the Form
    else {
      Log().info('Inserting New form');
      form = hive_form.Form(
          key: framework?.key,
          parent: framework?.dependency,
          complete: completed,
          template: xml,
          data: map);
      await form.insert();
    }
    // Mark Clean
    clean = true;
  }
  return form;
}