Example #1
0
        private static planFormulaInfo SetBlockStatements(BlockInfo l_blck, string antlr, int ruleId)
        {
            planFormulaInfo l_plan = new planFormulaInfo();

            l_plan.Name        = l_blck.Name;
            l_plan.DisplayName = l_blck.Name;
            l_plan.antlr       = antlr;
            l_plan.returnType  = l_blck.ReturnType;
            l_plan.tokens      = Newtonsoft.Json.JsonConvert.SerializeObject(l_blck.Statements);
            l_plan.Rule_Id     = ruleId;

            return(l_plan);
        }
Example #2
0
        static void Main(string[] args)
        {
            AlgorithmData  algData        = new AlgorithmData();
            AntlrConverter antlrConverter = new AntlrConverter();
            TokenConverter tc             = new TokenConverter();

            try
            {
                ObjectCache      cache        = MemoryCache.Default;
                var              cachedObject = cache["algoList"];
                List <BlockData> l_algoList   = null;
                if (cachedObject == null)
                {
                    l_algoList = algData.GetBlocks();

                    CacheItemPolicy policy = new CacheItemPolicy();
                    cachedObject = l_algoList;
                    cache.Set("algoList", cachedObject, policy);
                }
                else
                {
                    l_algoList = (List <BlockData>)cache.Get("algoList");
                }
                int count = 0;
                List <planFormulaInfo> l_planList = new List <planFormulaInfo>();
                foreach (var item in l_algoList)
                {
                    planFormulaInfo l_plan = null;
                    Console.WriteLine("Totlal count:" + l_algoList.Count());
                    BlockInfo l_blck = null;
                    if (item.planInfo != null)
                    {
                        foreach (var blck in item.planInfo.PlanFormula.ExpContent)
                        {
                            l_blck = antlrConverter.GetBlockInfo(blck.AntlrContent);
                            string l_err = tc.SetAntlr(l_blck);
                            l_plan = SetBlockStatements(l_blck, blck.AntlrContent, item.ruleId);
                            Console.WriteLine(blck.BlockName);
                            if (l_plan != null)
                            {
                                l_planList.Add(l_plan);
                            }
                        }
                    }
                    if (item.pricer != null)
                    {
                        foreach (var blck in item.pricer.PricerAlgorithm.ExpContent)
                        {
                            l_blck          = antlrConverter.GetBlockInfo(blck.AntlrContent);
                            l_blck.IsPricer = true;
                            string l_err = tc.SetAntlr(l_blck);
                            l_plan = SetBlockStatements(l_blck, blck.AntlrContent, item.ruleId);
                            if (l_plan != null)
                            {
                                l_planList.Add(l_plan);
                            }
                            Console.WriteLine(item.pricer.Name + " " + blck.BlockName);
                        }
                    }
                    if (item.formRules != null)
                    {
                        foreach (var blck in item.formRules.blockExponents)
                        {
                            l_blck = antlrConverter.GetBlockInfo(blck.AntlrContent);
                            string l_err = tc.SetAntlr(l_blck);
                            l_plan = SetBlockStatements(l_blck, blck.AntlrContent, item.ruleId);
                            Console.WriteLine(item.formRules.formulaeName + " - " + blck.BlockName);
                            if (l_plan != null)
                            {
                                l_planList.Add(l_plan);
                            }
                        }
                    }
                    count++;

                    Console.WriteLine(count);
                }
                algData.SaveBlock(l_planList);
                Console.WriteLine("Block validation finished");
                Console.Read();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Block validation failed");
            }
        }