예제 #1
0
        public MainWindow()
        {
            dicZH = new ResourceDictionary
            {
                Source = new Uri(@"Languages\ZH.xaml", UriKind.Relative)
            };
            dicEN = new ResourceDictionary
            {
                Source = new Uri(@"Languages\EN.xaml", UriKind.Relative)
            };

            try
            {
                StreamReader file = new StreamReader("lang.in");
                string       s    = file.ReadLine();
                if (s == "en")
                {
                    Application.Current.Resources.MergedDictionaries[0] = dicEN;
                }
                else
                {
                    Application.Current.Resources.MergedDictionaries[0] = dicZH;
                }
            }
            catch (Exception)
            {
                Application.Current.Resources.MergedDictionaries[0] = dicZH;
            }

            InitializeComponent();
            SetAnimation();

            if (Application.Current.Resources.MergedDictionaries[0] == dicZH)
            {
                lang.Content = "English";
            }
            else
            {
                lang.Content = "简体中文";
            }

            PreviewMouseMove += OnPreviewMouseMove;
            clr        = new ClrBackend();
            pgAdmin    = new PgAdmin(this, clr);
            pgLogin    = new PgLogin(this, clr);
            pgMyTicket = new PgMyTicket(this, clr);
            pgProfile  = new PgProfile(this, clr);
            pgQuery    = new PgQuery(this, clr);
            pgRegister = new PgRegister(this, clr);
            pgTrain    = new PgTrain(this, clr);
            pgTrains   = new PgTrains(this, clr);
            pgUser     = new PgUser(this, clr);
            pgUsers    = new PgUsers(this, clr);
            Logout();
            pageTransition.ShowPage(pgLogin);
        }
예제 #2
0
        protected override async Task HandleMessage(PgTransaction transaction, MessageBuilder messageBuilder, PipeWriter writer, CancellationToken token)
        {
            // TODO: Maybe support multiple SELECT statements in one query - requires parsing the SQL
            using var query = PgQuery.CreateInstance(QueryString, null, transaction.DocumentDatabase);

            var schema = await query.Init(true);

            if (schema.Count != 0)
            {
                await writer.WriteAsync(messageBuilder.RowDescription(schema), token);
            }

            await query.Execute(messageBuilder, writer, token);

            await writer.WriteAsync(messageBuilder.ReadyForQuery(transaction.State), token);
        }
예제 #3
0
        static unsafe void Main(string[] args)
        {
            string s = "SELECT * FROM lol;";

            fixed(byte *b = Encoding.UTF8.GetBytes(s))
            {
                PgQueryParseResult res = default;

                try
                {
                    res = PgQuery.Parse(b);
                    Console.WriteLine(StringFromUTF8NTS(res.parse_tree));
                }
                finally
                {
                    PgQuery.FreeParse(res);
                }
            }
        }
예제 #4
0
        public static bool TryParse(string queryText, DocumentDatabase documentDatabase, out PgQuery pgQuery)
        {
            var match = SqlRegex.Match(queryText);

            if (match.Success)
            {
                var tableName = match.Groups["table_name"].Value;

                pgQuery = new PowerBIPreviewQuery(documentDatabase, tableName);
                return(true);
            }

            pgQuery = null;
            return(false);
        }
예제 #5
0
        public static bool TryParse(string queryText, int[] parametersDataTypes, DocumentDatabase documentDatabase, out PgQuery pgQuery)
        {
            if (PowerBIFetchQuery.TryParse(queryText, parametersDataTypes, documentDatabase, out pgQuery))
            {
                return(true);
            }

            if (PowerBIAllCollectionsQuery.TryParse(queryText, parametersDataTypes, documentDatabase, out pgQuery))
            {
                return(true);
            }

            if (PowerBIPreviewQuery.TryParse(queryText, documentDatabase, out pgQuery))
            {
                return(true);
            }

            pgQuery = null;
            return(false);
        }
예제 #6
0
        public static bool TryParse(string queryText, int[] parametersDataTypes, DocumentDatabase documentDatabase, out PgQuery pgQuery)
        {
            queryText = queryText.NormalizeLineEndings();

            if (queryText.Equals(TableQuery, StringComparison.OrdinalIgnoreCase))
            {
                pgQuery = new PowerBIAllCollectionsQuery(queryText, parametersDataTypes, documentDatabase);
                return(true);
            }

            pgQuery = null;
            return(false);
        }