Exemplo n.º 1
0
        public string GetParseCsvTxt(DataField dataField, int i)
        {
            string typeName = dataField.typeName.ToLower().Trim();

            switch (typeName)
            {
            case "string":
                return($"csvGetString(csv,  {i}   )");

            case "int":
            case "int64":
                return($"csvGetInt(csv,  {i} )");

            case "float":
            case "double":
                return($"csvGetFloat(csv,  {i}  )");

            case "boolean":
            case "bool":
                return($"csvGetBoolean(csv, {i}   )");
            }

            typeName = dataField.GetTsTypeName();



            switch (typeName)
            {
            case "string[]":
                return($" toStringArray(       csvGetString(csv, {i}   )   )");

            case "int[]":
            case "int64[]":
                return($" toIntArray(       csvGetString(csv,  {i}   )   )");

            case "float[]":
            case "double[]":
                return($" toFloatArray(       csvGetString(csv,  {i}   )   )");

            case "boolean[]":
            case "bool[]":
                return($" toBooleanArray(       csvGetString(csv,  {i}   )   )");
            }

            if (typeName.EndsWith("[]"))
            {
                typeName = typeName.Replace("[]", "");
                return($" {typeName}.parseArray(       csvGetString(csv,  {i}   )   )");
            }
            else
            {
                return($" {typeName}.parse(       csvGetString(csv,  {i}   )   )");
            }



            return($"csvGetString(csv,  {i}   )");
        }
Exemplo n.º 2
0
        public string GetParseTxt(DataField dataField)
        {
            string typeName = dataField.typeName.ToLower().Trim();

            switch (typeName)
            {
            case "string":
                return($"csvGetString(csv,  this.GetHeadIndex(  \"{dataField.field}\"  )   )");

            case "int":
                return($"csvGetInt(csv,  this.GetHeadIndex(  \"{dataField.field}\"  )   )");

            case "float":
                return($"csvGetInt(csv,  this.GetHeadIndex(  \"{dataField.field}\"  )   )");

            case "boolean":
                return($"csvGetBoolean(csv,  this.GetHeadIndex(  \"{dataField.field}\"  )   )");
            }



            switch (typeName)
            {
            case "string[]":
                return($" toStringArray(       csvGetString(csv,  this.GetHeadIndex(  \"{dataField.field}\"  )   )   )");

            case "int[]":
                return($" toIntArray(       csvGetString(csv,  this.GetHeadIndex(  \"{dataField.field}\"  )   )   )");

            case "float[]":
                return($" toFloatArray(       csvGetString(csv,  this.GetHeadIndex(  \"{dataField.field}\"  )   )   )");

            case "boolean[]":
                return($" toBooleanArray(       csvGetString(csv,  this.GetHeadIndex(  \"{dataField.field}\"  )   )   )");
            }

            typeName = dataField.GetTsTypeName();
            if (typeName.EndsWith("[]"))
            {
                typeName = typeName.Replace("[]", "");
                return($" {typeName}.parseArray(       csvGetString(csv,  this.GetHeadIndex(  \"{dataField.field}\"  )   )   )");
            }
            else
            {
                return($" {typeName}.parse(       csvGetString(csv,  this.GetHeadIndex(  \"{dataField.field}\"  )   )   )");
            }



            return($"csvGetString(csv,  this.GetHeadIndex(  \"{dataField.field}\"  )   );");
        }
Exemplo n.º 3
0
        public void ExportDT()
        {
            List <object[]> fields = new List <object[]>();

            for (int i = 0; i < dataStruct.fields.Count; i++)
            {
                DataField dataField = dataStruct.fields[i];

                object[] lines = new object[] { dataField.field, dataField.GetTsTypeName() };
                fields.Add(lines);
            }



            TemplateSystem template = new TemplateSystem(File.ReadAllText(TemplatingFiles.Server.DTTemplate));

            template.AddVariable("classNameConfig", classNameConfig);
            template.AddVariable("fields", fields.ToArray());
            string content = template.Parse();
            string path    = string.Format(OutPaths.Server.DTTemplate, classNameConfig);

            PathHelper.CheckPath(path);
            File.WriteAllText(path, content);
        }
Exemplo n.º 4
0
        public void ExportConfigStruct()
        {
            List <object[]> dicts  = new List <object[]>();
            List <object[]> fields = new List <object[]>();


            for (int i = 0; i < dataStruct.fields.Count; i++)
            {
                DataField dataField = dataStruct.fields[i];

                if (dataField.fieldNameIsEnable)
                {
                    object[] lines = new object[] { dataField.field, dataField.GetTsTypeName() };
                    fields.Add(lines);
                }
                else
                {
                    object[] lines = new object[] { dataField.field, dataField.GetTsTypeName(), Regex.Replace(dataField.field, @"[^A-Za-z0-9_]", @"_") };
                    dicts.Add(lines);
                }
            }


            List <object[]> langs = new List <object[]>();


            for (int i = 0; i < dataStruct.fields.Count; i++)
            {
                DataField dataField = dataStruct.fields[i];

                if (dataField.field.StartsWith("zh_cn_"))
                {
                    object[] lines = new object[] { dataField.field.Replace("zh_cn_", ""), dataField.field, fieldName };
                    langs.Add(lines);
                }
                else if (dataField.field.StartsWith("cn_"))
                {
                    object[] lines = new object[] { dataField.field.Replace("cn_", ""), dataField.field, fieldName };
                    langs.Add(lines);
                }
            }



            string parse      = "";
            string parseArray = "";

            if (isExtend)
            {
                StringWriter sw = new StringWriter();
                sw.WriteLine($"  static parse(txt: string): {classNameConfig} ");
                sw.WriteLine("      {");

                sw.WriteLine($"          let csv = toStringArray(txt);");
                sw.WriteLine($"          let config = new {classNameConfig}();");


                for (int i = 0; i < dataStruct.fields.Count; i++)
                {
                    DataField dataField = dataStruct.fields[i];
                    sw.WriteLine($"          config.{dataField.field} = {GetParseCsvTxt(dataField, i)};");
                }

                sw.WriteLine("          return config;");
                sw.WriteLine("      }");

                parse = sw.ToString();



                // parseArray
                sw = new StringWriter();
                sw.WriteLine($"  static parseArray(txt: string): {classNameConfig}[] ");
                sw.WriteLine("      {");
                sw.WriteLine($"          let csv = toStringArray(txt, /[;]/);");
                sw.WriteLine($"          let list:{classNameConfig}[] = [];");
                sw.WriteLine($"          for(let i = 0; i < csv.length; i ++)");
                sw.WriteLine("          {");
                sw.WriteLine($"              list.push(      {classNameConfig}.parse(csv[i])          );");
                sw.WriteLine("           }");

                sw.WriteLine("          return list;");
                sw.WriteLine("      }");

                parseArray = sw.ToString();
            }



            TemplateSystem template = new TemplateSystem(File.ReadAllText(TemplatingFiles.Client.ConfigStructTemplates));

            template.AddVariable("classNameConfigStruct", classNameConfigStruct);
            template.AddVariable("fields", fields.ToArray());
            template.AddVariable("dicts", dicts.ToArray());
            template.AddVariable("langs", langs.ToArray());
            template.AddVariable("parse", parse);
            template.AddVariable("parseArray", parseArray);
            string content = template.Parse();
            string path    = string.Format(OutPaths.Client.ConfigStructTeamplate, classNameConfigStruct);

            PathHelper.CheckPath(path);
            File.WriteAllText(path, content);
        }
Exemplo n.º 5
0
        public static void Parse(DataField dataField, string txt, JsonData lineJD, XlsxManager xlsxManager)
        {
            string field    = dataField.field;
            string typeName = dataField.typeName.ToLower().Trim();

            switch (typeName)
            {
            case "string":
                lineJD[field] = txt;
                //lineJD[field] = string.Format("\"{0}\"", txt.Replace("\"", "\\\""));
                return;

            case "int64":
                lineJD[field] = txt.ToInt64();
                return;

            case "int":
                lineJD[field] = txt.ToInt32();
                return;

            case "double":
                lineJD[field] = txt.ToDouble();
                return;

            case "float":
                lineJD[field] = txt.ToSingle();
                return;

            case "boolean":
            case "bool":
                lineJD[field] = txt.ToBoolean();
                return;
            }


            if (typeName.EndsWith("[]"))
            {
                string[] csv = txt.toStringArray();

                JsonData jd = new JsonData();
                jd.SetJsonType(JsonType.Array);
                lineJD[field] = jd;
                switch (typeName)
                {
                case "string[]":
                    for (int i = 0; i < csv.Length; i++)
                    {
                        jd.Add(csv[i]);
                    }
                    return;

                case "int64[]":
                    for (int i = 0; i < csv.Length; i++)
                    {
                        jd.Add(csv[i].ToInt64());
                    }
                    return;

                case "int[]":
                    for (int i = 0; i < csv.Length; i++)
                    {
                        jd.Add(csv[i].ToInt32());
                    }
                    return;

                case "double[]":
                    for (int i = 0; i < csv.Length; i++)
                    {
                        jd.Add(csv[i].ToDouble());
                    }
                    return;

                case "float[]":
                    for (int i = 0; i < csv.Length; i++)
                    {
                        jd.Add(csv[i].ToSingle());
                    }
                    return;

                case "boolean[]":
                case "bool[]":
                    for (int i = 0; i < csv.Length; i++)
                    {
                        jd.Add(csv[i].ToBoolean());
                    }
                    return;
                }
            }

            typeName = dataField.GetTsTypeName();

            if (typeName.EndsWith("[]"))
            {
                typeName = typeName.Replace("[]", "");
                DataStruct dataStruct = xlsxManager.GetDataStruct(typeName);
                if (dataStruct != null)
                {
                    lineJD[field] = ParseStructArray(txt, dataStruct, xlsxManager);
                }
                else
                {
                    lineJD[field] = txt;
                }
            }
            else
            {
                DataStruct dataStruct = xlsxManager.GetDataStruct(typeName);
                if (dataStruct != null)
                {
                    lineJD[field] = ParseStruct(txt, dataStruct, xlsxManager);
                }
                else
                {
                    lineJD[field] = txt;
                }
            }
        }