示例#1
0
 public JsonController()
 {
     Result              = new Result();
     countryUtil         = new CountryUtil();
     stateUtil           = new StateUtil();
     areaUtil            = new AreaUtil();
     userUtil            = new UserUtil();
     subareaUtil         = new SubAreaUtil();
     appointmentTypeUtil = new AppointmentTypeUtil();
     currencyUtil        = new CurrencyUtil();
     dateFormatUtil      = new DateFormatUtil();
     languageUtil        = new LanguageUtil();
     religionUtil        = new ReligionUtil();
     durationDaysUtil    = new DurationDaysUtil();
     sourceUtil          = new SourceUtil();
     packageUtil         = new PackageUtil();
     cityUtil            = new CityUtil();
     //scoreColumnUtil = new ScoreColumnUtil();
     nationalityUtil = new NationalityUtil();
     timeFormatUtil  = new TimeFormatUtil();
     industryUtil    = new IndustryUtil();
     paymentModeUtil = new PaymentModeUtil();
     applicationTemplatePlaceHolderUtil = new ApplicationTemplatePlaceHolderUtil();
     jobTypeUtill        = new JobTypeUtill();
     jobStatusUtill      = new JobStatusUtill();
     packageTypeUtill    = new PackageTypeUtill();
     paperTypeUtill      = new PaperTypeUtill();
     paperSubTypeUtill   = new PaperSubTypeUtill();
     paymentStatusUtill  = new PaymentStatusUtill();
     currencyUtil        = new CurrencyUtil();
     leminationTypeUtill = new LeminationTypeUtill();
 }
        public MastersController()
        {
            result              = new Result();
            countryUtil         = new CountryUtil();
            stateUtil           = new StateUtil();
            cityUtil            = new CityUtil();
            areaUtil            = new AreaUtil();
            subareaUtil         = new SubAreaUtil();
            appointmentTypeUtil = new AppointmentTypeUtil();
            currencyUtil        = new CurrencyUtil();
            dateFormatUtil      = new DateFormatUtil();
            documentTypeUtil    = new DocumentTypeUtil();
            languageUtil        = new LanguageUtil();
            religionUtil        = new ReligionUtil();
            nationalityUtil     = new NationalityUtil();
            sourceUtil          = new SourceUtil();
            durationDaysUtil    = new DurationDaysUtil();
            packageUtil         = new PackageUtil();

            // scoreColumnUtil = new ScoreColumnUtil();
            timeFormatUtil  = new TimeFormatUtil();
            industryUtil    = new IndustryUtil();
            paymentModeUtil = new PaymentModeUtil();
            applicationTemplatePlaceHolderUtil = new ApplicationTemplatePlaceHolderUtil();
        }
        /// <summary>
        /// Process the page in aspFile string. Pagepath is only used for getting included files.
        /// </summary>
        /// <param name="pagePath"></param>
        /// <param name="aspFile"></param>
        /// <param name="virtualRootPath">Physical path of the virtual root used when this class is used
        public void processPage(string pagePath, string aspFile, string virtualRootPath)
        {
            _virtualRootPath = virtualRootPath;
            Dlrsoft.VBScript.Compiler.Range[] lineRanges = SourceUtil.GetLineRanges(aspFile);
            const string    pattern = "<%(?<contents>.*?)%>|<!--\\s*#include\\s+(?<contents>.*?)\\s*-->|<script[^>]+runat=\"?server\"?[^>]*>(?<contents>.*?)</script>";
            Regex           r       = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            MatchCollection ms      = r.Matches(aspFile);

            int p1 = 0;
            int p2 = 0;

            foreach (Match m in ms)
            {
                p2 = m.Index;
                if (p2 - p1 > 0)
                {
                    appendBlock(pagePath, SourceUtil.GetSpan(lineRanges, p1, p2 - 1), GetListeral(aspFile, p1, p2), 1);
                }
                p1 = m.Index + m.Length;

                string value    = m.Value.Trim();
                string contents = m.Groups["contents"].Value.Trim();

                if (value.StartsWith("<!-"))
                {
                    processInclude(pagePath, contents.ToLower());
                }
                else if (Regex.IsMatch(value, "^<%\\s*@"))
                {
                }
                else
                {
                    string temp = contents.Trim();
                    if (!string.IsNullOrEmpty(temp))
                    {
                        if (temp[0] == '=') //Expression
                        {
                            contents = string.Format("response.Write({0})", temp.Substring(1).Trim());
                            appendBlock(pagePath, SourceUtil.GetSpan(lineRanges, m.Index, p1 - 1), contents, 1);
                        }
                        else
                        {
                            appendBlock(pagePath, SourceUtil.GetSpan(lineRanges, m.Index, p1 - 1), contents, SourceUtil.GetLineCount(contents));
                        }
                    }
                }
            }
            p2 = aspFile.Length;
            if (p2 - p1 > 0)
            {
                appendBlock(pagePath, SourceUtil.GetSpan(lineRanges, p1, p2 - 1), GetListeral(aspFile, p1, p2), 1);
            }
        }
示例#4
0
        /// <summary>
        /// Process the page in aspFile string. Pagepath is only used for getting included files.
        /// </summary>
        /// <param name="pagePath"></param>
        /// <param name="aspFile"></param>
        /// <param name="virtualRootPath">Physical path of the virtual root used when this class is used
        public void processPage(string pagePath, string aspFile, string virtualRootPath)
        {
            _virtualRootPath = virtualRootPath;
            Range[]         lineRanges = SourceUtil.GetLineRanges(aspFile);
            const string    pattern    = "<%(?<contents>.*?)%>|<!--\\s*#include\\s+(?<contents>.*?)\\s*-->|<script[^>]+runat=\"?server\"?[^>]*>(?<contents>.*?)</script>";
            Regex           r          = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            MatchCollection ms         = r.Matches(aspFile);
            int             p1         = 0;
            int             p2         = 0;

            foreach (Match m in ms)
            {
                p2 = m.Index;
                if (p2 - p1 > 0)
                {
                    appendBlock(pagePath, SourceUtil.GetSpan(lineRanges, p1, p2 - 1), GetListeral(aspFile, p1, p2), 1);
                }
                p1 = m.Index + m.Length;
                string value    = m.Value;
                string contents = m.Groups["contents"].Value;
                switch (value.Substring(0, 3))
                {
                case "<!-":     //Include
                    processInclude(pagePath, contents.ToLower(), SourceUtil.GetSpan(lineRanges, m.Index, p1 - 1), value);
                    break;

                case "<%@":     //Declaration. Ignore
                    break;

                default:
                    string temp = contents.Trim();
                    if (!string.IsNullOrEmpty(temp))
                    {
                        if (temp[0] == '=')                                           //Expression
                        {
                            contents = "@Html.Raw(" + temp.Substring(1).Trim() + ")"; //string.Format("response.Write({0})", temp.Substring(1).Trim());
                            appendBlock(pagePath, SourceUtil.GetSpan(lineRanges, m.Index, p1 - 1), contents, 1);
                        }
                        else
                        {
                            if (ProcessCode != null)
                            {
                                contents = ProcessCode(contents);
                            }

                            var preceeding = m.Index > 0 ? aspFile.Substring(m.Index - 1, 1) : " ";
                            var codePrefix = (Regex.IsMatch(preceeding, @"\s|[>='\""]") ? "" : " ")
                                             + "@Code";

                            if (!contents.StartsWith(" "))
                            {
                                codePrefix += " ";
                            }
                            contents = codePrefix + contents;

                            if (!contents.EndsWith("\n") && !contents.EndsWith(" "))
                            {
                                contents += " ";
                            }

                            contents += "End Code";
                            var nextChar  = m.Index + m.Length;
                            var following = nextChar < aspFile.Length ? aspFile.Substring(m.Index + m.Length, 1) : " ";
                            contents += (Regex.IsMatch(following, @"\s|['\""&<]") ? "" : " ");
                            appendBlock(pagePath, SourceUtil.GetSpan(lineRanges, m.Index, p1 - 1), contents, SourceUtil.GetLineCount(contents));
                        }
                    }
                    break;
                }
            }
            p2 = aspFile.Length;
            if (p2 - p1 > 0)
            {
                appendBlock(pagePath, SourceUtil.GetSpan(lineRanges, p1, p2 - 1), GetListeral(aspFile, p1, p2), 1);
            }
        }
示例#5
0
        ParseFileToLambda(string filename, TextReader reader)
        {
            var scanner    = new VB.Scanner(reader);
            var errorTable = new List <VB.SyntaxError>();

            var block = new VB.Parser().ParseScriptFile(scanner, errorTable);

            if (errorTable.Count > 0)
            {
                List <VBScriptSyntaxError> errors = new List <VBScriptSyntaxError>();
                foreach (VB.SyntaxError error in errorTable)
                {
                    errors.Add(new VBScriptSyntaxError(
                                   filename,
                                   SourceUtil.ConvertSpan(error.Span),
                                   (int)error.Type,
                                   error.Type.ToString())
                               );
                }
                throw new VBScriptCompilerException(errors);
            }

            VBScriptSourceCodeReader sourceReader = reader as VBScriptSourceCodeReader;
            ISourceMapper            mapper       = null;

            if (sourceReader != null)
            {
                mapper = sourceReader.SourceMapper;
            }

            var scope = new AnalysisScope(
                null,
                filename,
                this,
                Expression.Parameter(typeof(VBScript), "vbscriptRuntime"),
                Expression.Parameter(typeof(IDynamicMetaObjectProvider), "fileModule"),
                mapper);

            //Generate function table
            List <Expression> body = new List <Expression>();

            //Add the built in globals
            ParameterExpression err = Expression.Parameter(typeof(ErrObject), ERR_PARAMETER);

            scope.Names.Add(ERR_PARAMETER, err);
            body.Add(
                Expression.Assign(
                    err,
                    Expression.New(typeof(ErrObject))
                    )
                );

            if (Trace)
            {
                ParameterExpression trace = Expression.Parameter(typeof(ITrace), TRACE_PARAMETER);
                scope.Names.Add(TRACE_PARAMETER, trace);
                body.Add(
                    Expression.Assign(
                        trace,
                        Expression.Convert(
                            Expression.Dynamic(
                                scope.GetRuntime().GetGetMemberBinder(TRACE_PARAMETER),
                                typeof(object),
                                scope.GetModuleExpr()
                                ),
                            typeof(ITrace)
                            )
                        )
                    );
            }

            //Put module variables and functions into the scope
            VBScriptAnalyzer.AnalyzeFile(block, scope);

            //Generate the module level code other than the methods:
            if (block.Statements != null)
            {
                foreach (var s in block.Statements)
                {
                    if (s is VB.MethodDeclaration)
                    {
                        //Make sure methods are created first before being executed
                        body.Insert(0, VBScriptGenerator.GenerateExpr(s, scope));
                    }
                    else
                    {
                        Expression stmt = VBScriptGenerator.GenerateExpr(s, scope);
                        if (scope.VariableScope.IsOnErrorResumeNextOn)
                        {
                            stmt = VBScriptGenerator.WrapTryCatchExpression(stmt, scope);
                        }
                        Expression debugInfo      = null;
                        Expression clearDebugInfo = null;
                        if (Trace && s is VB.Statement && !(s is VB.BlockStatement))
                        {
                            debugInfo = VBScriptGenerator.GenerateDebugInfo(s, scope, out clearDebugInfo);
                            body.Add(debugInfo);
                        }

                        body.Add(stmt);

                        if (clearDebugInfo != null)
                        {
                            body.Add(clearDebugInfo);
                        }
                    }
                }
            }

            body.Add(Expression.Constant(null)); //Stop anything from returning

            if (scope.Errors.Count > 0)
            {
                throw new VBScriptCompilerException(scope.Errors);
            }

            //if (Debug)
            //{
            //    Expression registerRuntimeVariables = VBScriptGenerator.GenerateRuntimeVariablesExpression(scope);

            //    body.Insert(0, registerRuntimeVariables);
            //}

            var moduleFun = Expression.Lambda <Action <VBScript, IDynamicMetaObjectProvider> >(
                Expression.Block(
                    scope.Names.Values,
                    body),
                scope.RuntimeExpr,
                scope.ModuleExpr);

            //if (!Debug)
            //{
            return(moduleFun.Compile());
            //}
            //else
            //{
            //    Expression<Action<VBScript, IDynamicMetaObjectProvider>> lambda =  (Expression<Action<VBScript, IDynamicMetaObjectProvider>>)DebugContext.TransformLambda(moduleFun);
            //    return lambda.Compile();
            //}
        }