Пример #1
0
        public static void GenLoad(StreamWriter sw, string prefix, VarDefine varDefine, Bean.VarData varData, Property.DataOutputFlags flags)
        {
            switch (varDefine.TypeNow)
            {
            case VarDefine.EType.Date:
                if (false == string.IsNullOrEmpty(varData.Value))
                {
                    sw.WriteLine($"{prefix}V{varDefine.Name}: new Date(\"{varData.Value}\"),");
                }
                break;

            case VarDefine.EType.Double:
                if (false == string.IsNullOrEmpty(varData.Value))
                {
                    sw.WriteLine($"{prefix}V{varDefine.Name}: {varData.Value},");
                }
                break;

            case VarDefine.EType.Enum:
                sw.WriteLine($"{prefix}V{varDefine.Name}: {varDefine.FullName().Replace('.', '_')}.{varData.Value}");
                break;

            case VarDefine.EType.Float:
                if (false == string.IsNullOrEmpty(varData.Value))
                {
                    sw.WriteLine($"{prefix}V{varDefine.Name}: {varData.Value},");
                }
                break;

            case VarDefine.EType.Int:
                if (false == string.IsNullOrEmpty(varData.Value))
                {
                    sw.WriteLine($"{prefix}V{varDefine.Name}: {varData.Value},");
                }
                break;

            case VarDefine.EType.Long:
                if (false == string.IsNullOrEmpty(varData.Value))
                {
                    sw.WriteLine($"{prefix}V{varDefine.Name}: {varData.Value},");
                }
                break;

            case VarDefine.EType.String:
                var strValue = (null == varData.Value) ? "" : varData.Value;
                sw.WriteLine($"{prefix}V{varDefine.Name}: \"{strValue}\",");
                break;

            case VarDefine.EType.List:
                sw.WriteLine($"{prefix}V{varDefine.Name}: [");
                foreach (var bean in varData.Beans)
                {
                    sw.Write(prefix + "    ");
                    GenLoad(sw, prefix + "    ", varDefine.Reference, bean, flags);
                    sw.WriteLine(",");
                }
                sw.WriteLine($"{prefix}],");
                break;
            }
        }
Пример #2
0
        public static string GetDefaultInitialize(VarDefine var)
        {
            switch (var.TypeNow)
            {
            case VarDefine.EType.Double:
                if (string.IsNullOrEmpty(var.Default))
                {
                    break;
                }
                return($" = {var.Default};");

            case VarDefine.EType.Enum:
                if (string.IsNullOrEmpty(var.Default))
                {
                    break;
                }
                return($" = {var.Name}.{var.Default};");

            case VarDefine.EType.Float:
                if (string.IsNullOrEmpty(var.Default))
                {
                    break;
                }
                return($" = {var.Default};");

            case VarDefine.EType.Int:
                if (string.IsNullOrEmpty(var.Default))
                {
                    break;
                }
                return($" = {var.Default};");

            case VarDefine.EType.List:
                return($" = new List<{var.Reference.FullName()}>();");

            case VarDefine.EType.Date:
                if (string.IsNullOrEmpty(var.Default))
                {
                    return($" = new DateTime();");
                }
                return($" = new DateTime(\"{var.Default}\")");

            case VarDefine.EType.Long:
                if (string.IsNullOrEmpty(var.Default))
                {
                    break;
                }
                return($" = {var.Default};");

            case VarDefine.EType.String:
                return($" = \"{var.Default}\";");

            default:
                throw new Exception("unknown type");
            }
            return("");
        }
Пример #3
0
 private bool ExistData(VerifyParam param, VarDefine foreignVar)
 {
     foreach (var beanData in foreignVar.Parent.Document.Beans)
     {
         Bean.VarData varData = beanData.GetLocalVarData(foreignVar.Name);
         if (null != varData && param.NewValue.Equals(varData.Value))
         {
             return(true);
         }
     }
     return(false);
 }
Пример #4
0
        private static string GetDefaultInitialize(VarDefine var)
        {
            switch (var.TypeNow)
            {
            case VarDefine.EType.String:
            case VarDefine.EType.Date:
                return($"\"{var.Default}\"");

            case VarDefine.EType.Int:
            case VarDefine.EType.Long:
            case VarDefine.EType.Float:
            case VarDefine.EType.Double:
                return(var.Default);

            case VarDefine.EType.Enum:
                return($"Config.Enums.{var.FullNamePinyin().Replace('.', '_')}.{var.DefaultPinyin}]");

            default:
                throw new Exception("unknown type");
            }
        }
Пример #5
0
        public static string GetName(VarDefine var)
        {
            switch (var.TypeNow)
            {
            case VarDefine.EType.Double: return("double");

            case VarDefine.EType.Enum: return(var.Name);

            case VarDefine.EType.Float: return("float");

            case VarDefine.EType.Int: return("int");

            case VarDefine.EType.List: return($"List<{var.Reference.FullName()}>");

            case VarDefine.EType.Date: return("DateTime");

            case VarDefine.EType.Long: return("long");

            case VarDefine.EType.String: return("string");

            default: throw new Exception("unknown type");
            }
        }
Пример #6
0
        public static string GetName(VarDefine var)
        {
            switch (var.TypeNow)
            {
            case VarDefine.EType.Double: return("number");

            case VarDefine.EType.Enum: return(var.FullName().Replace('.', '_'));

            case VarDefine.EType.Float: return("number");

            case VarDefine.EType.Int: return("number");

            case VarDefine.EType.List: return($"Array<_{var.Reference.FullName().Replace('.', '_')}>");

            case VarDefine.EType.Date: return("Date");

            case VarDefine.EType.Long: return("bigint");

            case VarDefine.EType.String: return("string");

            default: throw new Exception("unknown type");
            }
        }
Пример #7
0
        public static void GenLoader(System.IO.StreamWriter sw, Document doc, VarDefine var, string prefix, Property.DataOutputFlags flags)
        {
            switch (var.TypeNow)
            {
            case VarDefine.EType.Double:
                sw.WriteLine($"{prefix}if (!string.IsNullOrEmpty(e.InnerText))");
                sw.WriteLine($"{prefix}    V{var.Name} = double.Parse(e.InnerText);");
                break;

            case VarDefine.EType.Enum:
                sw.WriteLine($"{prefix}V{var.Name} = ({var.Name})System.Enum.Parse(typeof({var.Name}), e.InnerText);");
                break;

            case VarDefine.EType.Float:
                sw.WriteLine($"{prefix}if (!string.IsNullOrEmpty(e.InnerText))");
                sw.WriteLine($"{prefix}    V{var.Name} = float.Parse(e.InnerText);");
                break;

            case VarDefine.EType.Int:
                sw.WriteLine($"{prefix}if (!string.IsNullOrEmpty(e.InnerText))");
                sw.WriteLine($"{prefix}    V{var.Name} = int.Parse(e.InnerText);");
                break;

            case VarDefine.EType.List:
                sw.WriteLine($"{prefix}Manager.LoadList(e, (XmlElement eInList) =>");
                sw.WriteLine($"{prefix}{{");
                sw.WriteLine($"{prefix}    var beanInList = new {var.Reference.FullName()}(eInList);");
                sw.WriteLine($"{prefix}    V{var.Name}.Add(beanInList);");
                if (false == FormMain.Instance.PropertyManager.Properties.TryGetValue(Property.IdList.PName, out var pid))
                {
                    throw new Exception("Property.Id miss!");
                }
                foreach (var varRef in var.Reference.Variables)
                {
                    if (false == varRef.IsKeyable())
                    {
                        continue;
                    }

                    if (false == varRef.PropertiesList.Contains(pid))
                    {
                        continue;
                    }

                    sw.WriteLine($"{prefix}    V{var.Name}Map{varRef.Name}.Add(beanInList.V{varRef.Name}, beanInList);");
                }
                sw.WriteLine($"{prefix}}});");
                break;

            case VarDefine.EType.Long:
                sw.WriteLine($"{prefix}if (!string.IsNullOrEmpty(e.InnerText))");
                sw.WriteLine($"{prefix}    V{var.Name} = long.Parse(e.InnerText);");
                break;

            case VarDefine.EType.String:
                sw.WriteLine($"{prefix}V{var.Name} = e.InnerText;");
                break;

            case VarDefine.EType.Date:
                sw.WriteLine($"{prefix}V{var.Name} = DateTime.Parse(e.InnerText);");
                break;

            default:
                throw new Exception("unknown type");
            }
        }
Пример #8
0
        public static void GenLoad(StreamWriter sw, string baseTable, VarDefine varDefine, Bean.VarData varData, Property.DataOutputFlags flags)
        {
            switch (varDefine.TypeNow)
            {
            case VarDefine.EType.Date:
                // 先使用string. 看看lua怎么用。
                if (false == string.IsNullOrEmpty(varData.Value))
                {
                    sw.WriteLine($"{baseTable}.{varDefine.NamePinyin} = \"{varData.Value}\"");
                }
                else if (false == string.IsNullOrEmpty(varDefine.Default))
                {
                    sw.WriteLine($"{baseTable}.{varDefine.NamePinyin} = \"{varDefine.Default}\"");
                }
                break;

            case VarDefine.EType.Int:
            case VarDefine.EType.Float:
            case VarDefine.EType.Double:
            case VarDefine.EType.Long:
                if (false == string.IsNullOrEmpty(varData.Value))
                {
                    sw.WriteLine($"{baseTable}.{varDefine.NamePinyin} = {varData.Value}");
                }
                else if (false == string.IsNullOrEmpty(varDefine.Default))
                {
                    sw.WriteLine($"{baseTable}.{varDefine.NamePinyin} = {varDefine.Default}");
                }
                break;

            case VarDefine.EType.Enum:
                var enumClassName = varDefine.FullNamePinyin().Replace('.', '_');
                if (false == string.IsNullOrEmpty(varData.Value))
                {
                    sw.WriteLine($"{baseTable}.{varDefine.NamePinyin} = Config.Enums.{enumClassName}.{varData.ValuePinyin}");
                }
                else if (false == string.IsNullOrEmpty(varDefine.Default))
                {
                    sw.WriteLine($"{baseTable}.{varDefine.NamePinyin} = Config.Enums.{enumClassName}.{varDefine.DefaultPinyin}");
                }
                break;

            case VarDefine.EType.String:
                if (false == string.IsNullOrEmpty(varData.Value))
                {
                    sw.WriteLine($"{baseTable}.{varDefine.NamePinyin} = \"{varData.Value}\"");
                }
                else if (false == string.IsNullOrEmpty(varDefine.Default))
                {
                    sw.WriteLine($"{baseTable}.{varDefine.NamePinyin} = \"{varDefine.Default}\"");
                }
                else
                {
                    sw.WriteLine($"{baseTable}.{varDefine.NamePinyin} = \"\"");
                }
                break;

            case VarDefine.EType.List:
                sw.WriteLine($"{baseTable}.{varDefine.NamePinyin} = {{}}");
                foreach (var bean in varData.Beans)
                {
                    var beanVarName = $"{baseTable}.{varDefine.NamePinyin}[{bean.RowIndex + 1}]";
                    sw.WriteLine($"{beanVarName} = {{}}");
                    GenLoad(sw, beanVarName, varDefine.Reference, bean, flags);
                }
                break;
            }
        }