瀏覽代碼

修复List<Enum>生成代码异常的问题。

Felix 2 年之前
父節點
當前提交
116e6dc18a
共有 1 個文件被更改,包括 25 次插入0 次删除
  1. 25 0
      ModeType.cs

+ 25 - 0
ModeType.cs

@@ -355,6 +355,11 @@ namespace FlutterCodeGenerator
                             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,");
                         }
+                        else if (listModelType.GenericArgumentModelType is EnumModeType)
+                        {
+                            var model = listModelType.GenericArgumentModelType.GetFlutterTypeName();
+                            source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'] != null ? (map['{child.Name_Upper}'] as List).map((e)=>{model}.values.firstWhere((i) => i.index == map[e])).toList() : null,");
+                        }
                         else
                         {
                             var model = listModelType.GenericArgumentModelType.GetFlutterTypeName();
@@ -372,6 +377,11 @@ namespace FlutterCodeGenerator
                             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,");
                         }
+                        else if (listModelType.GenericArgumentModelType is EnumModeType)
+                        {
+                            var model = listModelType.GenericArgumentModelType.GetFlutterTypeName();
+                            source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'] != null ? (map['{child.Name_Upper}'] as List).map((e)=>{model}.values.firstWhere((i) => i.index == map[e])).toList() : null,");
+                        }
                         else
                         {
                             var model = listModelType.GenericArgumentModelType.GetFlutterTypeName();
@@ -385,6 +395,11 @@ namespace FlutterCodeGenerator
                             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,");
                         }
+                        else if (listModelType.GenericArgumentModelType is EnumModeType)
+                        {
+                            var model = listModelType.GenericArgumentModelType.GetFlutterTypeName();
+                            source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'] != null ? (map['{child.Name_Upper}'] as List).map((e)=>{model}.values.firstWhere((i) => i.index == map[e])).toList() : null,");
+                        }
                         else
                         {
                             var model = listModelType.GenericArgumentModelType.GetFlutterTypeName();
@@ -411,6 +426,11 @@ namespace FlutterCodeGenerator
                             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,");
                         }
+                        else if (userDefinedGenericModelType.GenericArgumentModelType is EnumModeType)
+                        {
+                            var model = userDefinedGenericModelType.GenericArgumentModelType.GetFlutterTypeName();
+                            source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'] != null ? (map['{child.Name_Upper}'] as List).map((e)=>{model}.values.firstWhere((i) => i.index == map[e])).toList() : null,");
+                        }
                         else
                         {
                             var model = userDefinedGenericModelType.GenericArgumentModelType.GetFlutterTypeName();
@@ -424,6 +444,11 @@ namespace FlutterCodeGenerator
                             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,");
                         }
+                        else if (userDefinedGenericModelType.GenericArgumentModelType is EnumModeType)
+                        {
+                            var model = userDefinedGenericModelType.GenericArgumentModelType.GetFlutterTypeName();
+                            source.AppendLine($"\t\t\t{child.Name_Lower}: map['{child.Name_Upper}'] != null ? (map['{child.Name_Upper}'] as List).map((e)=>{model}.values.firstWhere((i) => i.index == map[e])).toList() : null,");
+                        }
                         else
                         {
                             var model = userDefinedGenericModelType.GenericArgumentModelType.GetFlutterTypeName();