コード例 #1
0
 public void InitUpdateSetting()
 {
     ConfigHelp.CurrentDirectory = System.Environment.CurrentDirectory;
     logger.Info("getUpdateSetting - currentDirectory=" + ConfigHelp.CurrentDirectory);
     this.iniUpdate              = IniFileUtil.GetInstance(ConfigHelp.CurrentDirectory + "\\Config\\update.ini");
     ConfigHelp.ServerAddress    = this.iniUpdate.ReadInivalue("Version", "ServerAddress");
     ConfigHelp.AppNameUpdate    = this.iniUpdate.ReadInivalue("Version", "AppNameUpdate");
     ConfigHelp.AppNameMain      = this.iniUpdate.ReadInivalue("Version", "AppNameMain");
     ConfigHelp.DeviceType       = this.iniUpdate.ReadInivalue("Version", "DeviceType");
     ConfigHelp.VersionCode      = NumberUtil.Parse(this.iniUpdate.ReadInivalue("Version", "VersionCode"), 0);
     ConfigHelp.VersionName      = this.iniUpdate.ReadInivalue("Version", "VersionName");
     ConfigHelp.ConnectionString = this.iniUpdate.ReadInivalue("Setting", "ConnectionString");
     logger.Info("getUpdateSetting - ServerAddress=" + ConfigHelp.ServerAddress + ", AppNameUpdate=" + ConfigHelp.AppNameUpdate + ", AppNameMain=" + ConfigHelp.AppNameMain +
                 ", DeviceType=" + ConfigHelp.DeviceType + ", VersionCode=" + ConfigHelp.VersionCode + ", VersionName=" + ConfigHelp.VersionName + ", ConnectionString=" + ConfigHelp.ConnectionString);
 }
コード例 #2
0
 /// <summary>
 /// 基础数据 - 解析检查
 /// </summary>
 private string dataCheck_jichushuju(string tableName, string field, string value)
 {
     if (tableName.Equals("商品资料") && field.Equals("标准售价") && value.Equals(""))
     {
         return("0");
     }
     else if (tableName.Equals("商品资料") && field.Equals("参考进价") && value.Equals(""))
     {
         return("0");
     }
     else if (tableName.Equals("车辆信息表") && field.Equals("年份"))
     {
         if (value != null && !value.Equals(""))
         {
             try
             {
                 int year = NumberUtil.Parse(value.Substring(0, 4));
                 if (year != 0)
                 {
                     return(DateTime.Parse(year + "-01-01").ToString());
                 }
             }
             catch (Exception ey)
             {
                 logger.Info("" + ey.Message);
             }
         }
         return("null");
     }
     else if (tableName.Equals("车辆信息表") && field.Equals("行驶里程") && value.Equals(""))
     {
         return("0");
     }
     else if (tableName.Equals("车辆信息表") && field.Equals("车牌号"))
     {
         return(value.Replace("\\", "").Replace(".", ""));
     }
     else
     {
         return(value);
     }
 }
コード例 #3
0
        public override Result VisitMacro([NotNull] MacroContext context)
        {
            var macroName = context.GetToken(SYNTAX, 0).GetText();

            _il.Emit(OpCodes.Ldarg_0);                                      // ctx
            _il.Emit(OpCodes.Ldstr, macroName);                             // ctx name
            _il.Emit(OpCodes.Ldstr, _context.CurrentNs);                    // ctx name ns
            _il.Emit(OpCodes.Ldarg_1);                                      // ctx name ns self

            var contexts = context.GetRuleContexts <MacroParameterContext>();

            _il.Emit(OpCodes.Ldc_I4, contexts.Length);                      // ctx name ns self
            _il.Emit(OpCodes.Newarr, typeof(object));                       // ctx name ns self args
            for (var i = 0; i < contexts.Length; ++i)
            {
                var arg = contexts[i];

                _il.Emit(OpCodes.Dup);                                      // .. -> args
                _il.Emit(OpCodes.Ldc_I4, i);                                // .. -> args idx

                if (arg.nsSyntax() != null)
                {
                    _il.Emit(OpCodes.Ldstr, arg.nsSyntax().GetText());      // .. -> args idx ele
                }
                else if (arg.STRING() != null)
                {
                    var result = StringUtil.Parse(arg.STRING().GetText());  // .. -> args idx ele
                    if (result.IsSuccess)
                    {
                        _il.Emit(OpCodes.Ldstr, result.Value);              // .. -> args idx ele
                    }
                    else
                    {
                        return(result);
                    }
                }
                else if (arg.NUMBER() != null)
                {
                    var result = NumberUtil.Parse(arg.NUMBER().GetText());
                    if (result.IsSuccess)
                    {
                        _il.Emit(OpCodes.Ldc_R8, result.Value);             // .. -> args idx vele
                        _il.Emit(OpCodes.Box, typeof(double));              // .. -> args idx rele
                    }
                    else
                    {
                        return(result);
                    }
                }
                else if (arg.DATE() != null)
                {
                    var result = DateUtil.Parse(arg.DATE().GetText());
                    if (result.IsSuccess)
                    {
                        _il.Emit(OpCodes.Ldc_I8, result.Value.ToBinary());  // .. -> args idx int64
                        var ctor = typeof(DateTime).GetTypeInfo().GetConstructor(new[] { typeof(long) });
                        _il.Emit(OpCodes.Newobj, ctor);                     // .. -> args idx date
                        _il.Emit(OpCodes.Box, typeof(DateTime));            // .. -> args idx rele
                    }
                    else
                    {
                        return(result);
                    }
                }
                else if (arg.Bool() != null)
                {
                    _il.Emit(bool.Parse(arg.Bool().GetText()) ?
                             OpCodes.Ldc_I4_1 :
                             OpCodes.Ldc_I4_0);                             // .. -> args idx bool
                    _il.Emit(OpCodes.Box, typeof(bool));                    // .. -> args idx rele
                }
                else if (arg.unnamedSql() != null)
                {
                    var parseTree = arg.unnamedSql();
                    var id        = NameUtil.GetFunctionName(parseTree);
                    var result    = _context.TryGetEmiter(id, _context.CurrentNs);

                    SqlEmiter emiter;
                    if (result.IsSuccess)
                    {
                        emiter = result.Value;
                    }
                    else
                    {
                        emiter = SqlEmiterUtil.CreateUnnamed(parseTree, _context.CurrentNs);
                        var ok = _context.TryAdd(id, emiter);
                        if (ok.IsFailure)
                        {
                            return(ok);
                        }
                    }

                    var compileResult = emiter.EnsureCompiled(_context);
                    if (compileResult.IsFailure)
                    {
                        return(compileResult);
                    }

                    _il.Emit(OpCodes.Ldarg_0);                                // .. -> args idx ctx
                    _il.Emit(OpCodes.Ldstr, id);                              // .. -> args idx ctx id
                    _il.Emit(OpCodes.Ldstr, _context.CurrentNs);              // .. -> args idx ctx id ns
                    _il.Emit(OpCodes.Call, typeof(SqlEmiterUtil).GetTypeInfo()
                             .GetMethod(nameof(SqlEmiterUtil.EmiterFromId))); // .. -> args idx emiter
                }
                else
                {
                    throw new InvalidOperationException();
                }

                _il.Emit(OpCodes.Stelem_Ref);                               // -> ctx name ns self args
            }

            _il.Emit(OpCodes.Call, typeof(MacroManager).GetTypeInfo()
                     .GetMethod(nameof(MacroManager.Execute)));             // result<str>
            _il.Emit(OpCodes.Dup);                                          // result<str> x 2
            _il.Emit(OpCodes.Call, typeof(Result).GetTypeInfo()
                     .GetMethod("get_" + nameof(Result.IsSuccess)));        // result<str> bool
            _il.Emit(OpCodes.Ldc_I4_1);                                     // result<str> bool true
            var ifIsSuccess = _il.DefineLabel();

            _il.Emit(OpCodes.Beq, ifIsSuccess);                             // result<str> (jmp if equal)
            _il.Emit(OpCodes.Ret);                                          // [exit-returned]

            _il.MarkLabel(ifIsSuccess);                                     // ifIsSuccess:
            _il.Emit(OpCodes.Call, typeof(Result <string>).GetTypeInfo()
                     .GetMethod("get_" + nameof(Result <string> .Value)));  // str
            var strValue = _il.DeclareLocal(typeof(string));

            _il.Emit(OpCodes.Stloc, strValue);                              // [empty]
            _il.Emit(OpCodes.Ldloc_0);                                      // sb
            _il.Emit(OpCodes.Ldloc, strValue);                              // sb str
            _il.Emit(OpCodes.Call, typeof(StringBuilder)
                     .GetTypeInfo().GetMethod(nameof(StringBuilder.Append),
                                              new[] { typeof(string), }));  // sb+str
            _il.Emit(OpCodes.Pop);                                          // [empty]

            return(Result.Ok());
        }
コード例 #4
0
ファイル: CoreSqlVisitor.cs プロジェクト: sdcb/sdmap
        private Result EmitGetMacroParameter(MacroParameterContext arg)
        {
            if (arg.nsSyntax() != null)
            {
                _il.Emit(OpCodes.Ldstr, arg.nsSyntax().GetText());      // val
            }
            else if (arg.STRING() != null)
            {
                var result = StringUtil.Parse(arg.STRING().GetText());
                if (result.IsSuccess)
                {
                    _il.Emit(OpCodes.Ldstr, result.Value);              // val
                }
                else
                {
                    return(result);
                }
            }
            else if (arg.NUMBER() != null)
            {
                var result = NumberUtil.Parse(arg.NUMBER().GetText());
                if (result.IsSuccess)
                {
                    _il.Emit(OpCodes.Ldc_R8, result.Value);             // num
                    _il.Emit(OpCodes.Box, typeof(double));              // box<num>
                }
                else
                {
                    return(result);
                }
            }
            else if (arg.DATE() != null)
            {
                var result = DateUtil.Parse(arg.DATE().GetText());
                if (result.IsSuccess)
                {
                    _il.Emit(OpCodes.Ldc_I8, result.Value.ToBinary());  // num
                    var ctor = typeof(DateTime).GetConstructor(new[] { typeof(long) });
                    _il.Emit(OpCodes.Newobj, ctor);                     // date
                    _il.Emit(OpCodes.Box, typeof(DateTime));            // box<date>
                }
                else
                {
                    return(result);
                }
            }
            else if (arg.Bool() != null)
            {
                _il.Emit(bool.Parse(arg.Bool().GetText()) ?
                         OpCodes.Ldc_I4_1 :
                         OpCodes.Ldc_I4_0);                             // bool
                _il.Emit(OpCodes.Box, typeof(bool));                    // box<bool>
            }
            else if (arg.unnamedSql() != null)
            {
                var parseTree = arg.unnamedSql();
                var id        = NameUtil.GetFunctionName(parseTree);
                var result    = _context.TryGetEmiter(id, _context.CurrentNs);

                SqlEmiter emiter;
                if (result.IsSuccess)
                {
                    emiter = result.Value;
                }
                else
                {
                    emiter = SqlEmiterUtil.CreateUnnamed(parseTree, _context.CurrentNs);
                    var ok = _context.TryAdd(id, emiter);
                    if (ok.IsFailure)
                    {
                        return(ok);
                    }
                }

                var compileResult = emiter.EnsureCompiled(_context);
                if (compileResult.IsFailure)
                {
                    return(compileResult);
                }

                _il.Emit(OpCodes.Ldarg_0);                                // ctx
                _il.Emit(OpCodes.Call, OneCallContext.GetCompiler);       // compiler
                _il.Emit(OpCodes.Ldstr, id);                              // compiler id
                _il.Emit(OpCodes.Ldstr, _context.CurrentNs);              // compiler id ns
                _il.Emit(OpCodes.Call, typeof(SqlEmiterUtil)
                         .GetMethod(nameof(SqlEmiterUtil.EmiterFromId))); // emiter
            }
            else if (arg.macro() != null)
            {
                var result = EmitMacroResult(arg.macro(), topLevel: false);
                if (!result.IsSuccess)
                {
                    return(result);
                }
            }
            else
            {
                return(Result.Fail($"Unknown macro."));
            }

            return(Result.Ok());
        }