toJson method
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;
}