addUnreservedTemplate method

dynamic addUnreservedTemplate({
  1. String? id,
  2. UnreservedTemplate? value,
})

unreserved template

unreserved template is map type. u can add more than one item. id id No. is "80" up to "99".

Implementation

addUnreservedTemplate({String? id, UnreservedTemplate? value}) {
  if (id != null && value != null) {
    if (int.parse(id) < int.parse(ID.unreservedTemplatesRangeStart) ||
        int.parse(id) > int.parse(ID.unreservedTemplatesRangeEnd)) {
      throw InvalidId(title: "UnreservedTemplate");
    }
    String _globally =
        "${value.value.globallyUniqueIdentifier?.tag}${value.value.globallyUniqueIdentifier?.length}${value.value.globallyUniqueIdentifier?.value}";
    String _payment = "";
    value.value.contextSpecificData?.forEach((element) {
      _payment += "${element.tag}${element.length}${element.value}";
    });

    UnreservedTemplateModel unreservedTemplate = UnreservedTemplateModel(
        tag: id,
        length: getValueLength(_globally + _payment),
        value: value.value);

    // add merchant account info
    if (this.value.unreservedTemplates != null) {
      this.value.unreservedTemplates?[id] = unreservedTemplate;
    } else {
      this.value =
          this.value.copyWith(unreservedTemplates: {id: unreservedTemplate});
    }
  }
}