findVariation method

dynamic findVariation(
  1. Map<int, dynamic> options
)

Implementation

findVariation(Map<int, dynamic> options) {
  List<int?> positions = this.options!.map((e) => e.position).toList();

  List<Variants>? variants;
  for (int i = 1; i < positions.length + 1; i++) {
    if (i == 1) {
      variants = this
          .variants!
          .where((element) => element.option1 == options[i])
          .toList();
    }

    if (i == 2) {
      variants =
          variants!.where((element) => element.option2 == options[i]).toList();
    }

    if (i == 3) {
      variants =
          variants!.where((element) => element.option3 == options[i]).toList();
    }

    if (variants == null || variants.length == 0) {
      return null;
    }
  }

  if (variants != null && variants.length > 0) {
    return variants.first;
  }
  return null;
}