Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="element"></param>
        /// <param name="evp"></param>
        public override void Visit(Fun element, EvaluationParam evp)
        {
            if (element.Type == FunctionType.Avg)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = getRecord(element);
                    result = new Result();

                    result.Value = dt.Computing("", element.ActionField, AggregateFunctionE.Average);
                }
            }
            else if (element.Type == FunctionType.Count)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = getRecord(element);
                    result       = new Result();
                    result.Value = dt.Rows.Count;
                }
            }
            else if (element.Type == FunctionType.UCount)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = getRecord(element);
                    result       = new Result();
                    result.Value = dt.DefaultView.ToTable(true, element.ActionField).Rows.Count;
                }
            }
            else if (element.Type == FunctionType.Min)
            {
                if (element.GetSource() != null)
                {
                    DataTable dt = getRecord(element);
                    result       = new Result();
                    result.Value = dt.Computing("", element.ActionField, AggregateFunctionE.Min);
                }
            }
            else if (element.Type == FunctionType.Max)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = getRecord(element);
                    result       = new Result();
                    result.Value = dt.Computing("", element.ActionField, AggregateFunctionE.Max);
                }
            }
            else if (element.Type == FunctionType.Sum)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = getRecord(element);
                    result       = new Result();
                    result.Value = dt.Computing("", element.ActionField, AggregateFunctionE.Sum);
                }
            }
            else if (element.Type == FunctionType.Case)
            {
                var c = (Case)element;
                System.Data.DataTable dt = getRecord(element);
                result = new Result();
                StringBuilder sb = new StringBuilder();
                sb.Append("{0}");
                foreach (CaseParam cp in c.Cases)
                {
                    StringBuilder s = new StringBuilder();
                    s.AppendFormat("IIF([{0}] {1} '{2}','{3}','{4}')", c.FieldName, cp.Condition, cp.Value, cp.AliasValue, "{0}");
                    string sst = sb.ToString();
                    sb.Clear();
                    sb.AppendFormat(sst, s.ToString());
                }
                if (sb.ToString() != "")
                {
                    string st = sb.ToString();
                    sb.Clear();
                    sb.AppendFormat(st, c.elseValue);
                    if (dt.Columns.Contains(c.NewFieldName) == false)
                    {
                        dt.Columns.Add(c.NewFieldName, typeof(string));
                    }
                    dt.Columns[c.NewFieldName].Expression = sb.ToString();
                    dt.AcceptChanges();
                    result.Value = dt;
                }
            }
            else if (element.Type == FunctionType.Order)
            {
                var c = (Order)element;
                System.Data.DataTable dt = getRecord(element);
                result = new Result();
                string s = "";
                foreach (ParamFields p in c.Fields)
                {
                    s = s + "," + p.FieldName + " " + p.Order;
                }
                if (s.StartsWith(","))
                {
                    s = s.Substring(1);
                }
                DataView viewFI = new DataView(dt);
                viewFI.Sort  = s;
                dt           = viewFI.ToTable();
                result.Value = dt;
            }
            else if (element.Type == FunctionType.Pivot)
            {
                var p = (Pivot)element;
                System.Data.DataTable     dt        = (DataTable)element.GetSource();
                List <string>             row       = new List <string>();
                List <string>             datafield = new List <string>();
                List <AggregateFunctionE> dataagg   = new List <AggregateFunctionE>();
                List <string>             colfield  = new List <string>();
                foreach (ParamFields d in p.RowArguments)
                {
                    row.Add(d.FieldName);
                }
                foreach (ParamFields d in p.AggrArguments)
                {
                    datafield.Add(d.FieldName);
                    dataagg.Add((AggregateFunctionE)d.Aggregate);
                }
                foreach (ParamFields d in p.ColumnArguments)
                {
                    colfield.Add(d.FieldName);
                }
                dt           = dt.PivotData(datafield, dataagg.ToList(), row.ToArray(), colfield.ToArray(), false, 0, null, null, false);
                result       = new Result();
                result.Value = dt;
            }
            else if (element.Type == FunctionType.Mean)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = getRecord(element);
                    result       = new Result();
                    result.Value = dt.Computing("", element.ActionField, AggregateFunctionE.Median);
                }
            }
            else if (element.Type == FunctionType.Mode)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = getRecord(element);
                    result       = new Result();
                    result.Value = dt.Computing("", element.ActionField, AggregateFunctionE.Mode);
                }
            }
            else if (element.Type == FunctionType.Range)
            {
            }
            else if (element.Type == FunctionType.Medium)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = getRecord(element);
                    result       = new Result();
                    result.Value = dt.Computing("", element.ActionField, AggregateFunctionE.Median);
                }
            }
            else if (element.Type == FunctionType.Merge)
            {
            }
            else if (element.Type == FunctionType.Join)
            {
            }
            else if (element.Type == FunctionType.Filter)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = (System.Data.DataTable)element.GetSource();
                    var flt = "1=1";
                    foreach (ParamFields pf in element.Arguments)
                    {
                        flt = flt + " AND " + pf.FieldName + " = " + pf.FieldValue;
                    }
                    dt.DefaultView.RowFilter = flt;
                    dt = dt.DefaultView.ToTable(true);
                    dt.DefaultView.RowFilter = "";
                    result       = new Result();
                    result.Value = dt;
                }
            }
            else if (element.Type == FunctionType.Calculate)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = (System.Data.DataTable)element.GetSource();
                    dt.Calculate(((Calculate)element).ColumnName, ((Calculate)element).formula);
                    result       = new Result();
                    result.Value = dt;
                }
            }
            else if (element.Type == FunctionType.Columnduplicate)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = (System.Data.DataTable)element.GetSource();
                    dt           = dt.DuplicateColumn(((Duplicate)element).ColumnName, ((Duplicate)element).AliasColumnName);
                    result       = new Result();
                    result.Value = dt;
                }
            }
            else if (element.Type == FunctionType.Dateparse)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = (System.Data.DataTable)element.GetSource();
                    dt           = dt.DateParse(((DateParse)element).ColumnName, ((DateParse)element).GetParse());
                    result       = new Result();
                    result.Value = dt;
                }
            }
            else if (element.Type == FunctionType.Columnspit)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = (System.Data.DataTable)element.GetSource();
                    dt           = dt.Split(((Split)element).SplitColumn, ((Split)element).Spliter, ((Split)element).ColumnPrefix);
                    result       = new Result();
                    result.Value = dt;
                }
            }
            else if (element.Type == FunctionType.Replace)
            {
                if (element.GetSource() != null)
                {
                    List <KeyValuePair <string, string> > kp = new List <KeyValuePair <string, string> >();
                    kp.Add(new KeyValuePair <string, string>(((Replace)element).FindString, ((Replace)element).ReplaceString));
                    System.Data.DataTable dt = (System.Data.DataTable)element.GetSource();
                    dt           = dt.FindReplace(((Replace)element).ColumnName, kp, ((Replace)element).NewColumnName);
                    result       = new Result();
                    result.Value = dt;
                }
            }
            else if (element.Type == FunctionType.ChangeCase)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = (System.Data.DataTable)element.GetSource();
                    if ((((TextCase)element).CaseType == TextCaseType.UPPER))
                    {
                        dt = dt.UpperCase(((TextCase)element).ColumnName);
                    }
                    else if ((((TextCase)element).CaseType == TextCaseType.CAPITAL))
                    {
                        dt = dt.CapitalCase(((TextCase)element).ColumnName);
                    }
                    else if ((((TextCase)element).CaseType == TextCaseType.LOWER))
                    {
                        dt = dt.LowerCase(((TextCase)element).ColumnName);
                    }
                    else if ((((TextCase)element).CaseType == TextCaseType.TITLE))
                    {
                        dt = dt.TitleCase(((TextCase)element).ColumnName);
                    }
                    result       = new Result();
                    result.Value = dt;
                }
            }
            else if (element.Type == FunctionType.Trancate)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = (System.Data.DataTable)element.GetSource();
                    dt.Trancate(((Trancate)element).ColumnName, ((Trancate)element).TrancateIndex);
                    result       = new Result();
                    result.Value = dt;
                }
            }
            else if (element.Type == FunctionType.GetValue)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = (System.Data.DataTable)element.GetSource();
                    if (dt.Rows.Count > 0)
                    {
                        var name = ((Fun)element).Arguments[0].FieldName;
                        var s    = dt.Rows[0][name.Trim()];
                        result       = new Result();
                        result.Value = s;
                    }
                    else
                    {
                        result       = new Result();
                        result.Value = "";
                    }
                }
            }
            else if (element.Type == FunctionType.GetValues)
            {
                if (element.GetSource() != null)
                {
                    System.Data.DataTable dt = (System.Data.DataTable)element.GetSource();
                    if (dt.Rows.Count > 0)
                    {
                        var  name           = ((Fun)element).Arguments[0].FieldName.Trim();
                        Type type           = dt.Columns[name].DataType;
                        var  selectedColumn = string.Join(",", dt.AsEnumerable().Select(s => s.Field <string>(name)).ToArray());
                        result       = new Result();
                        result.Value = selectedColumn;
                    }
                    else
                    {
                        result       = new Result();
                        result.Value = "";
                    }
                }
                else
                {
                    result       = new Result();
                    result.Value = "";
                }
            }
            else if (element.Type == FunctionType.toString)
            {
                if (element.GetSource() != null)
                {
                }
            }
        }
Example #2
0
        //static void Main(string[] args) {

        //MySqlConnection c = new MySqlConnection("Server=talentozstagemysql.mysql.database.azure.com;Initial Catalog=demo1talentoz;Uid=adminstage@talentozstagemysql;Pwd=SMRmme123456*");
        //try
        //{
        //    c.Open();
        //}
        //catch (Exception ex)
        //{


        //}
        //finally {
        //    c.Close();
        //}



        //   string tabid, serverid;
        //      CreateTable(out tabid, out serverid);
        //    addColumn(tabid, serverid);
        //   AlterColumn("60c1e054e52e4cf5917a9a235d615f86755744925", "5a0601c9263240a98b16e4d68ec7bd3c986933058");
        // DropTable(tabid,serverid);
        // Setup();
        //CreateClient();
        //RemoveClient();
        // UpdateClient();
        //  CreateServer();
        //string key = CreateServer();
        //UpdateSever(key);
        //System.Console.ReadKey();
        //RemoveServer(key);

        //    PrintUser();
        //RemoveUser(CreateUser());
        //System.Console.ReadKey();
        //}

        static void Main(string[] args)
        {
            //    Setup();



            //var strings =Assembly.GetExecutingAssembly().Location ;
            ////Setup();
            //string assemblyFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            System.Console.WriteLine("Start time:" + DateTime.Now);

            string program = @"p:pUserID=90; p:getfield=F_200115; d:data=getdata(get(sys_user:[UserID,F_200005,F_200015,F_200030, F_200140, F_200115, F_200160, F_200200, F_200205]:a join Employee_Position:[status]:b with[a:userid equalto b:userid] join position:[PositionID]:c with[c:PositionID equalto b:PositionID],[c:ClientID equalto b:ClientID] join businessunit:[F_300015]:bu with[bu:BusinessUnitID equalto c:F_360025] join worklocation:[F_310035]:wl with[wl:WorkLocationID equalto c:F_360030] join department:[F_320005]:dp with[dp:DepartmentID equalto c:F_360035]), and[(b:status isequalto value:1)]);d:result = getvalue(data, getfield)";


            EvaluationParam  ev = new EvaluationParam("connection", "Server=smrdbserver;Initial Catalog=talentozdev;Uid=admin;Pwd=admin312");
            QScriptStatement sq = new QScriptStatement(program, ev);
            var res             = sq.Evaluation();

            System.Data.DataTable dataTable = res.data;
            // System.Console.Write(dataTable.ToJSON());
            List <KeyValuePair <string, string> > find = new List <KeyValuePair <string, string> >();

            find.Add(new KeyValuePair <string, string>("-", ""));
            find.Add(new KeyValuePair <string, string>(" ", ""));
            find.Add(new KeyValuePair <string, string>(":", "_"));
            System.Data.DataTable dt      = dataTable.FindReplace("F_200140", find, "AliasEmail");
            System.Data.DataTable dt_date = dataTable.DateParse("F_200140", ParseType._YEARMONTH);

            System.Console.WriteLine("End time:" + DateTime.Now);
            // System.Console.Write(res.result);
            System.Data.DataTable dts  = new DataTable();
            DataTable             dtre = new DataTable();

            dts.TableName = "User";
            dts.Columns.Add(new DataColumn("UserID"));
            dts.Columns.Add(new DataColumn("UserName"));
            DataRow dr = dts.NewRow();

            dr[0] = "1";
            dr[1] = "sampathkumar";
            dts.Rows.Add(dr);
            dtre.TableName = "info";
            dtre.Columns.Add(new DataColumn("UserID"));
            dtre.Columns.Add(new DataColumn("Password"));
            dr    = dtre.NewRow();
            dr[0] = "1";
            dr[1] = "pavithra";
            dtre.Rows.Add(dr);
            var item = new List <ModelField>();

            item.Add(new ModelField("UserID", "User"));
            item.Add(new ModelField("UserName", "User"));
            item.Add(new ModelField("Password", "info"));


            var       dm  = new DataModel(dts).Select(item.ToArray()).Join(dtre, "UserID", "UserID");
            DataTable abc = (DataTable)dm.getResult();

            //    // Setup employee collection
            System.Console.Write(abc.ToJSON());
            System.Console.ReadLine();
            //    //Employees e = new Employees();
            //    //e.Attach(new Clerk());
            //    //e.Attach(new Director());
            //    //// Employees are 'visited'
            //    //e.Accept(new IncomeVisitor());
            //    //e.Accept(new VacationVisitor());
            //    //var program = System.Console.ReadLine();


            //    // Wait for user

            //    //var p = new Tech.QScript.Syntax.Pivot("sdfsd");
            //    //var k = new Tech.QScript.Syntax.Fun(FunctionType.Avg, "");

            //    //try
            //    //{
            //    //    DataAccess.Schema.DataLayer db = new DataAccess.Schema.DataLayer("Server=dell6;Initial Catalog=talentozdev;Uid=root;Pwd=admin312");
            //    //    db.CreateSchool();
            //    //    System.Console.WriteLine("Created...");
            //    //    System.Console.ReadLine();
            //    //}
            //    //catch (Exception ex) {
            //    //    System.Console.WriteLine(ex.Message);
            //    //    System.Console.ReadLine();
            //    //}

            //    //try
            //    //{
            //    //    DataAccess.Schema.DataLayer db = new DataAccess.Schema.DataLayer("Server=dell6;Initial Catalog=talentozdev;Uid=root;Pwd=admin312");
            //    //    //db.Insert(3, "abc school", "mambakkam", "he only");
            //    //    //System.Console.WriteLine("Inserted...");
            //    //    //System.Console.ReadLine();
            //    //    System.Data.DataTable dt = db.Get();
            //    //    System.Console.WriteLine("Total Records..." + dt.Rows.Count);
            //    //    System.Console.ReadLine();
            //    //}

            //    //catch (Exception ex)
            //    //{
            //    //    System.Console.WriteLine(ex.Message);
            //    //    System.Console.ReadLine();
            //    //}
            //    //dynamic person = new DynamicDictionary();
            //    //person.UserName = "******";
            //    //person.Email = "Email:[email protected]";
            //    //person.Shout = new Action(() => { System.Console.WriteLine("Hellooo!!!"); });
            //    //System.Console.WriteLine("Data:" + person.UserName + ":" + person.Email + ":count "  + person.Count);
            //    //person.Shout();
            //    //System.Console.ReadLine();

            //    //  var query = "getdata(get[sdfs,sf,dfsd],from[sf,sf,sdf],and[sdfds,fsfs,s])";

            //    //string myStr = "put(tb,[f1:val,f2:val,f3:val],and[(),(),()])";
            //    //var st= Regex.Split(myStr, @",").Where(s => s != string.Empty); ;

            //    //System.Console.WriteLine(string.Join(",", st));

            //    //string  data = System.Console.ReadLine();

            //    //var d= getExpression(data);
            //    //System.Console.WriteLine(string.Join(",", d));
            //    // System.Console.ReadLine();



            //    //var query = "and[(d:sampath),(sdfs:Sdfsdf)]";
            //    //string rx = @"\((?:(?:p(1))|(?:[^()]))*\)";
            //    //MatchCollection ms= Regex.Matches(query, rx, RegexOptions.IgnoreCase);
            //    //foreach (Match m in ms) {
            //    //    if (m.Success)
            //    //    {
            //    //        var val = Regex.Split(query, rx);

            //    //        System.Console.WriteLine(val[0] + " variable name:" + val[1]);
            //    //    }
            //    //}


            //    while (true)
            //    {
            //        string program = "d:data= getdata(get(sys_user:[userid, F_200115, F_200005,LastUPD]:a join Employee_Position:[status]:b with[a:userid equalto b:userid] join position:[PositionID]:c with[c:PositionID equalto b:PositionID]))"; //,and[(c:F_360010 with value:Project),(b:status isequalto value:1)]
            //        //  program = program + ";data= case(data,status:[equalto True:active position,else:inactive position],positional);";
            //        program = program + "; data= duplicate(data,F_200005,EmployeeName)";
            //        //program = program + "; data= dateparse(data,lastupd,y);";
            //        //program = program + "; data= split(data,lastupd,/,'date');";
            //        // program = program + "; data= replace(data,F_200115,@,#,F_200115);";
            //       // program = program + "; data= changecase(data,F_200115,U);";
            //       // program = program + "; data= trancate(data,F_200115,2);";
            //        //program = program + "; data= calculate(data,calculation,(F_200115 + F_200005));";
            //        program = program + "; d:values= Getvalues(data,F_200115);";

            //        //program = program + ";data= case(data,PositionID:[equalto 124:welcome,else:dontcome],performance);";

            //string a = "0";
            //System.Console.WriteLine("Enter Logical value:");
            //string val = System.Console.ReadLine();
            //System.Console.WriteLine("Enter a Value:");
            //a = System.Console.ReadLine();
            //System.Console.WriteLine("Enter b  Value:");
            //string b = System.Console.ReadLine();

            // string program = "d:val; val=" + val + ";d:a=" + a + ";d:b=" + b + ";d:k;";
            //program = program + "; d:pe=if(mod(" + a + "," + b + "),'i am printing', 'i am not printing');";
            // program = program + "; k=Expr([a] * [b]);";

            ////124
            ////string str = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
            ////str = str.Replace("@",  "");
            ////var s = Regex.Split(str, @"join");
            ////System.Console.WriteLine(str);
            ////  System.Console.ReadKey();
            //     var program = "d:data= getdata(get(sys_user:[UserID,F_200005,F_200015,F_200030,F_200140,F_200115,F_200160,F_200200,F_200205]:a join Employee_Position:[status]:b with[a:userid equalto b:userid] join position:[PositionID,F_360010]:c with[c:PositionID equalto b:PositionID,c:ClientID equalto b:ClientID] join businessunit:[F_300015]:bu with[bu:BusinessUnitID equalto c:F_360025] join worklocation:[F_310035]:wl with[wl:WorkLocationID equalto c:F_360030] join department:[F_320005]:dp with[dp:DepartmentID equalto c:F_360035]),and[(b:status isequalto value:1)]);"; /*System.Console.ReadLine();   */
            //var program = "p:pUserID;p:getfield;d:data= getdata(get(sys_user:[UserID,F_200005,F_200015,F_200030,F_200140,F_200115,F_200160,F_200200,F_200205]:a join Employee_Position:[status]:b with[a:userid equalto b:userid] join position:[PositionID,F_360010]:c with[c:PositionID equalto b:PositionID,c:ClientID equalto b:ClientID] join businessunit:[F_300015]:bu with[bu:BusinessUnitID equalto c:F_360025] join worklocation:[F_310035]:wl with[wl:WorkLocationID equalto c:F_360030] join department:[F_320005]:dp with[dp:DepartmentID equalto c:F_360035]),and[(a:UserID isequalto value:90),(b:status isequalto value:1)]);d: result = getvalue(data, F_200005); result = orderby(data,[userid: asc]);";
            ////program = program + ";data=orderby(data,[F_200005:desc,F_200015:asc])";
            //EvaluationParam ev = new EvaluationParam("connection", "Server=dell6;Initial Catalog=talentozdev;Uid=root;Pwd=admin312");
            //QScriptStatement sq = new QScriptStatement(program, ev);
            //var res = sq.Evaluation();
            //System.Console.WriteLine("Total:" + res.data);
            //System.Console.ReadLine();
            //        try
            //        {
            //            //for (int i = 0; i < res.Count; i++)
            //            //{
            //                System.Console.WriteLine(res.data);
            //            System.Console.WriteLine(res.values);
            //            //System.Console.WriteLine("Row Count:" + res.data.Rows.Count);
            //            //System.Console.WriteLine("Expression:" + res.k);
            //            //}
            //        }
            //        catch (Exception e)
            //        {
            //            System.Console.WriteLine(res);
            //        }
            //        //foreach (Tech.QScript.Source.ErrorEntry token in parser.ErrorSink.Errors)
            //        //{
            //        //    System.Console.WriteLine("Error in line no " + token.Span.Start.Line + " Message:" + token.Message + " line " + token.Lines[0]);
            //        //}
            //        //if (parser.ErrorSink.Errors.ToList().Count == 0)
            //        //{
            //        //    System.Console.WriteLine("no error");
            //        //}
            //    }


            //    //Tech.QueryParser.Language.Lexer.QueryScriptLexer lexer = new Tech.QueryParser.Language.Lexer.QueryScriptLexer();
            //    //Tech.QueryParser.Language.Parser.QueryScriptParser parser = new Tech.QueryParser.Language.Parser.QueryScriptParser(lexer.ErrorSink);
            //    //while (true)
            //    //{
            //    //    System.Console.Write("GlassScript> ");
            //    //    var program = System.Console.ReadLine();
            //    //    var sourceCode = new SourceCode(program);
            //    //    var tokens = lexer.LexFile(sourceCode).ToArray();
            //    //}
        }