コード例 #1
0
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                SqlOutput.Text    = "Generating Script...";
                CSharpOutput.Text = "Generating Script...";

                _CodeGenerator = new CodeGenerator(ConnectionString);

                await _CodeGenerator.GenerateQuerySchema(Query);

                var sqlResult = await _CodeGenerator.GetSqlScript();

                var cSharpResult = await _CodeGenerator.GetPocoScript();

                SqlOutput.Text    = sqlResult;
                CSharpOutput.Text = cSharpResult;

                if (ScriptResults == null)
                {
                    ScriptResults = new ScriptResultList();
                }

                var          lastResult = ScriptResults.FirstOrDefault(r => r.InputScript == Query);
                ScriptResult newResult  = new ScriptResult();

                // If there already is a matching result, update the run time
                if (lastResult != null)
                {
                    lastResult.ScriptTime = DateTime.Now;
                }
                else
                {
                    newResult.Server       = Server;
                    newResult.InputScript  = Query;
                    newResult.OutputCSharp = cSharpResult;
                    newResult.OutputSql    = sqlResult;
                    newResult.ScriptTime   = DateTime.Now;

                    ScriptResults.CullList(newResult);

                    ScriptResults.Add(newResult);
                }

                PriorQueryCombo.ItemsSource = ScriptResults.OrderByDescending(r => r.ScriptTime);
                PriorQueryCombo.Text        = (lastResult == null) ? newResult.ToString() : lastResult.ToString();

                SqlGenerator.Properties.Settings.Default.Save();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                SqlOutput.Text    = string.Format("/*{0}*/", ex.Message);
                CSharpOutput.Text = string.Format("/*{0}*/", ex.Message);
            }
        }