getMapFromModelData method
Implementation
Map<String, dynamic> getMapFromModelData({required Object model, required Object data}) {
List<String>? fieldList = getModelFieldNameList(model);
Map<String, dynamic> dataMap = {};
String fieldNamesTemp = data.toString().trim();
var namesStrings = fieldNamesTemp.split("{");
String dataWithoutSecondBracketLeft = "";
for (int i = 0; i < namesStrings.length; i++) {
if (i == 1) {
dataWithoutSecondBracketLeft = namesStrings[i];
} else if (i == namesStrings.length - 1) {
dataWithoutSecondBracketLeft =
dataWithoutSecondBracketLeft + "{" + namesStrings[i];
} else {
dataWithoutSecondBracketLeft =
dataWithoutSecondBracketLeft + "{" + namesStrings[i];
}
}
String dataWithoutSecondBracketRight = dataWithoutSecondBracketLeft.substring(0,dataWithoutSecondBracketLeft.length-1);
var fieldNameListTemp = dataWithoutSecondBracketRight.split(", ");
for (int j = 0; j < fieldList!.length; j++) {
bool isStarted = false;
String key = fieldList[j];
String value = "";
for (int i = 0; i < fieldNameListTemp.length; i++) {
String fieldNameTemp = getFieldName(fieldNameListTemp[i]);
if (fieldNameTemp == fieldList[j]) {
value = getValueWithColonValidation(fieldNameListTemp[i]);
dataMap[key] = value;
isStarted = true;
} else {
if (isStarted) {
if (j < fieldList.length - 1) {
if (fieldNameTemp == fieldList[j + 1]) {
isStarted = false;
break;
} else {
value = value + ", " + fieldNameListTemp[i];
dataMap[key] = value;
isStarted = true;
}
} else {
value = value + ", " + fieldNameListTemp[i];
dataMap[key] = value;
isStarted = true;
}
}
}
}
}
dataMap.forEach((key, value) {
if (value == "null") {
dataMap[key] = null;
}
});
debugPrint("Data map : ${jsonEncode(dataMap)}");
return dataMap;
}