toJson method

Map<String, dynamic> toJson()

Implementation

Map<String, dynamic> toJson() {
  var map = <String, dynamic>{};
  map["Name"] = parameterName;
  map["ComparisonOperator"] = comparisonOperator.value;
  if (parameterValue is DateTime) {
    map["Value"] = (parameterValue as DateTime).toUtc().toIso8601String();
  } else if (parameterValue is NsgEnum) {
    map["Value"] = (parameterValue as NsgEnum).value;
  } else if (parameterValue is NsgDataItem) {
    if (comparisonOperator == NsgComparisonOperator.typeEqual || comparisonOperator == NsgComparisonOperator.typeNotEqual) {
      map['Value'] = (parameterValue as NsgDataItem).typeName;
    } else {
      map["Value"] = (parameterValue as NsgDataItem).id;
    }
  } else if (parameterValue is List && (parameterValue as List).isNotEmpty && (parameterValue as List).first is NsgDataItem) {
    if ((parameterValue as List).first is NsgEnum) {
      //Для NsgEnum значение целое, а не guid
      var idList = <int>[];
      for (NsgEnum e in parameterValue as List) {
        idList.add(e.value);
      }
      map["Value"] = idList;
    } else {
      var idList = <String>[];
      for (NsgDataItem e in parameterValue as List) {
        idList.add(e.id);
      }
      map["Value"] = idList;
    }
  } else if (parameterValue is NsgCompare) {
    //map["ComparisonOperator"] = NsgComparisonOperator.compare;
    map["Value"] = (parameterValue as NsgCompare).toJson();
  } else {
    map["Value"] = parameterValue;
  }
  return map;
}