コード例 #1
0
        static void Main(string[] args)
        {
            var parser = new Parser();

            using (var fs = File.OpenRead("complicated.sasm"))
                using (var sr = new StreamReader(fs))
                    while (!sr.EndOfStream)
                    {
                        parser.ParseLine(sr.ReadLine());
                    }

            var modules = ModuleBuilder.CreateFrom(parser.GetCode());
            IEnumerable <IBlock> blocks = null;

            var email    = Ask("What is your email address?");
            var password = Ask("What is your password?");
            var worldid  = Ask("What is the World ID?");

            int worldWidth, worldHeight;

            var bot = PlayerIO.QuickConnect.SimpleConnect("everybody-edits-su9rn58o40itdbnw69plyw", email, password, null)
                      .ApplyFluency()           //make the client fluent

                      .Multiplayer
                      .CreateJoinRoom(worldid, "Everybodyedits237", false, null, null)
                      .OnDisconnect((c, i, e) => {
                if (i)
                {
                    c.Reconnect().Send("init");
                }
            })

                      .On("init", (c, e) => {
                e.Get(18, out worldWidth)
                .Get(19, out worldHeight);

                blocks = modules.BuildWorld(worldWidth, worldHeight);

                c.Send("init2");
            })

                      .On("init2", (c, e) => {
                var timedQuery = new QueryExecutioner <IBlock>();
                timedQuery.ProcessQueryItem += (i) => {
                    var arguments = i.GetEEArgs(0, 0);
                    c.Send("b", arguments);
                    Thread.Sleep(10);
                };

                foreach (var i in blocks)
                {
                    timedQuery.AddQueryItem(i);
                }
            })

                      .Send("init");

            Console.ReadLine();
        }
コード例 #2
0
        public void RightJoinTest()
        {
            Database DB = new Database(@"C:\Users\Moataz\Workspace\Software\Database Architect\Active Code\DatabaseArchitect\Southwind\Database.db.txt");

            DB.Read();
            foreach (Table T in DB.Tables)
            {
                T.ReadRecords();
            }
            Query        Q  = new Query("SELECT * FROM Projects RIGHT JOIN Grades ON GradeID=ID;");
            QueryScanner QS = new QueryScanner(Q);

            Q = QS.Scan();
            QueryParser      QP = new QueryParser(Q);
            QueryTree        QT = QP.Reorder();
            QueryExecutioner QE = new QueryExecutioner(QT, DB, null);
            Table            Ti = QE.ExecuteQuery();
        }
コード例 #3
0
        public void SELECT1()
        {
            Database DB = new Database(@"C:\Users\Moataz\Workspace\Software\Database Architect\Active Code\DatabaseArchitect\Southwind\Database.db.txt");

            DB.Read();
            foreach (Table T in DB.Tables)
            {
                T.ReadRecords();
            }
            Query        Q  = new Query("SELECT Rating,Name,Rating FROM Projects WHERE Rating=90 or Name=\"Software Architect\" or Name=\"DatabaseArchitect\";");
            QueryScanner QS = new QueryScanner(Q);

            Q = QS.Scan();
            QueryParser      QP = new QueryParser(Q);
            QueryTree        QT = QP.Reorder();
            QueryExecutioner QE = new QueryExecutioner(QT, DB, null);
            Table            Ti = QE.ExecuteQuery();
        }
コード例 #4
0
        static object ProcessQuery(Request Qr)
        {
            if (!(Qr.Attachment is string))
            {
                return("Invalid Query");
            }
            string Qs = Qr.Attachment as string;
            Query  Q  = new Query(Qs);

            try
            {
                QueryScanner QS = new QueryScanner(Q);
                Q = QS.Scan();

                QueryParser QP = new QueryParser(Q);
                QueryTree   Qt = QP.Reorder();

                QueryExecutioner Qexec = new QueryExecutioner(Qt, Server.Database, ServerReaders.ReadRecords);

                Table Ti = Qexec.ExecuteQuery();
                if (Qexec.AfterEffect[0])
                {
                    Server.Database.Write();
                }
                if (Qexec.AfterEffect[1])
                {
                    Qexec.Tables.Last().Write();
                }
                if (Qexec.AfterEffect[2])
                {
                    Qexec.Tables.Last().WriteRecords();
                }

                if (Ti == null)
                {
                    return(Qexec.Result);
                }
                return(Ti);
            }
            catch (Exception Ex)
            {
                return(Ex.Message);
            }
        }
コード例 #5
0
        public void UpdateTest()
        {
            Database DB = new Database(@"C:\Users\Moataz\Workspace\Software\Database Architect\Active Code\DatabaseArchitect\Southwind\Database.db.txt");

            DB.Read();
            foreach (Table T in DB.Tables)
            {
                T.ReadRecords();
            }
            Query        Q  = new Query("UPDATE Projects SET ID=1, Name=\"Database Architect\", Rating=100 WHERE ID=1;");
            QueryScanner QS = new QueryScanner(Q);

            Q = QS.Scan();
            QueryParser      QP = new QueryParser(Q);
            QueryTree        QT = QP.Reorder();
            QueryExecutioner QE = new QueryExecutioner(QT, DB, null);

            QE.ExecuteQuery();
        }
コード例 #6
0
ファイル: Room.cs プロジェクト: kubapolish/WSIO
 public Room()
 {
     this._players = new PlayerManager <TPlayer>();
     this._query   = new QueryExecutioner <RoomItem <TPlayer> >();
     this._query.ProcessQueryItem += this.ProcessQuery;
 }