|
@@ -329,7 +329,7 @@ namespace FlutterCodeGenerator
|
|
|
{
|
|
|
source.AppendLine($"\t\t\t{child.Name_Lower}: {child.Name_Lower}Data != null ? ({child.Name_Lower}Data as List).map((e) => e as int).toList(): null,");
|
|
|
}
|
|
|
- else if (modelType is SimpleModelType)
|
|
|
+ else if (modelType is SimpleModelType && (modelType is ExtraObjectModelType))
|
|
|
{
|
|
|
source.AppendLine($"\t\t\t{child.Name_Lower}: {child.Name_Lower}Data != null ? ({child.Name_Lower}Data as List).map((e) => e as {child.ParameterType.Name.Replace("[]", string.Empty)}).toList(): null,");
|
|
|
}
|
|
@@ -350,7 +350,7 @@ namespace FlutterCodeGenerator
|
|
|
{
|
|
|
source.AppendLine($"\t\t\t{child.Name_Lower}: {listModelType.Name_Lower}List,");
|
|
|
}
|
|
|
- else if (listModelType.GenericArgumentModelType is SimpleModelType)
|
|
|
+ else if (listModelType.GenericArgumentModelType is SimpleModelType && !(listModelType.GenericArgumentModelType is ExtraObjectModelType))
|
|
|
{
|
|
|
var model = listModelType.GenericArgumentModelType.GetFlutterTypeName();
|
|
|
source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'] != null ? map['{child.Name_Upper}'].cast<{model}>().toList() : null,");
|
|
@@ -372,7 +372,7 @@ namespace FlutterCodeGenerator
|
|
|
{
|
|
|
source.AppendLine($"\t\t\t{child.Name_Lower}: {listModelType.Name_Lower}List,");
|
|
|
}
|
|
|
- else if (listModelType.GenericArgumentModelType is SimpleModelType)
|
|
|
+ else if (listModelType.GenericArgumentModelType is SimpleModelType && !(listModelType.GenericArgumentModelType is ExtraObjectModelType))
|
|
|
{
|
|
|
var model = listModelType.GenericArgumentModelType.GetFlutterTypeName();
|
|
|
source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'] != null ? map['{child.Name_Upper}'].cast<{model}>().toList() : null,");
|
|
@@ -390,7 +390,7 @@ namespace FlutterCodeGenerator
|
|
|
}
|
|
|
else if (this is UserDefinedModeType || this is UserDefinedDerivedModelType)
|
|
|
{
|
|
|
- if (listModelType.GenericArgumentModelType is SimpleModelType)
|
|
|
+ if (listModelType.GenericArgumentModelType is SimpleModelType && !(listModelType.GenericArgumentModelType is ExtraObjectModelType))
|
|
|
{
|
|
|
var model = listModelType.GenericArgumentModelType.GetFlutterTypeName();
|
|
|
source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'] != null ? map['{child.Name_Upper}'].cast<{model}>().toList() : null,");
|
|
@@ -421,7 +421,7 @@ namespace FlutterCodeGenerator
|
|
|
{
|
|
|
source.AppendLine($"\t\t\t{child.Name_Lower}: {userDefinedGenericModelType.Name_Lower}List,");
|
|
|
}
|
|
|
- else if (userDefinedGenericModelType.GenericArgumentModelType is SimpleModelType)
|
|
|
+ else if (userDefinedGenericModelType.GenericArgumentModelType is SimpleModelType && !(userDefinedGenericModelType.GenericArgumentModelType is ExtraObjectModelType))
|
|
|
{
|
|
|
var model = userDefinedGenericModelType.GenericArgumentModelType.GetFlutterTypeName();
|
|
|
source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'] != null ? map['{child.Name_Upper}'].cast<{model}>().toList() : null,");
|
|
@@ -439,7 +439,7 @@ namespace FlutterCodeGenerator
|
|
|
}
|
|
|
else if (this is UserDefinedModeType)
|
|
|
{
|
|
|
- if (userDefinedGenericModelType.GenericArgumentModelType is SimpleModelType)
|
|
|
+ if (userDefinedGenericModelType.GenericArgumentModelType is SimpleModelType && !(userDefinedGenericModelType.GenericArgumentModelType is ExtraObjectModelType))
|
|
|
{
|
|
|
var model = userDefinedGenericModelType.GenericArgumentModelType.GetFlutterTypeName();
|
|
|
source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'] != null ? map['{child.Name_Upper}'].cast<{model}>().toList() : null,");
|
|
@@ -474,9 +474,30 @@ namespace FlutterCodeGenerator
|
|
|
|
|
|
public class EnumModeType : ComplexModelType
|
|
|
{
|
|
|
+ private Dictionary<int, string> _userDefinedEnumDictionary;
|
|
|
+
|
|
|
public EnumModeType(Type type, string name) : base(type, name)
|
|
|
{
|
|
|
- var firstChildName = Enum.GetNames(type)[0];
|
|
|
+ _userDefinedEnumDictionary = new Dictionary<int, string>();
|
|
|
+ var fields = ParameterType.GetFields();
|
|
|
+ if (fields != null && fields.Length > 1)
|
|
|
+ {
|
|
|
+ for (int i = 1; i < fields.Length; i++)
|
|
|
+ {
|
|
|
+ var fieldName = fields[i].GetValue(null).ToString();
|
|
|
+ var fieldValue = (int)fields[i].GetValue(null);
|
|
|
+ if (fieldValue < 0)
|
|
|
+ {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ _userDefinedEnumDictionary.Add(fieldValue, fieldName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ _userDefinedEnumDictionary = _userDefinedEnumDictionary.OrderBy(x => x.Key).ToDictionary(p => p.Key, o => o.Value);
|
|
|
+ }
|
|
|
+ var firstChildName = _userDefinedEnumDictionary.FirstOrDefault().Value;
|
|
|
DefaultValue = $"{GetFlutterTypeName()}.{firstChildName}";
|
|
|
}
|
|
|
|
|
@@ -484,9 +505,21 @@ namespace FlutterCodeGenerator
|
|
|
{
|
|
|
var dartString = new StringBuilder();
|
|
|
dartString.AppendLine($"enum {GetFlutterTypeName()} {{");
|
|
|
- foreach (var enumvalue in Enum.GetNames(ParameterType))
|
|
|
+ int lastValue = 0;
|
|
|
+ foreach (var userDefinedEnum in _userDefinedEnumDictionary)
|
|
|
{
|
|
|
- dartString.AppendLine($"\t{enumvalue},");
|
|
|
+ var index = userDefinedEnum.Key;
|
|
|
+ var name = userDefinedEnum.Value;
|
|
|
+ while (lastValue != index)
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\tplaceHolder_{lastValue},");
|
|
|
+ lastValue++;
|
|
|
+ }
|
|
|
+ if (lastValue == index)
|
|
|
+ {
|
|
|
+ dartString.AppendLine($"\t{name},");
|
|
|
+ lastValue++;
|
|
|
+ }
|
|
|
}
|
|
|
dartString.AppendLine("}");
|
|
|
return dartString.ToString();
|