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); } }
public void ChainedPropertiesTest() { using (var application = XpoInMemoryXafApplication.CreateInstance()) using (var objectSpace = application.CreateObjectSpace()) { for (int i = 1; i <= 10000; i++) { var objectWithReference = objectSpace.CreateObject <TestClassWithReference>(); var objectWithName = objectSpace.CreateObject <TestClassWithName>(); objectWithName.Name = $"Name {i}"; objectWithReference.NamedObject = objectWithName; objectWithReference.Title = $"Reference to {i}"; } objectSpace.CommitChanges(); var list = new ScriptResultList(objectSpace.GetObjectsQuery <TestClassWithReference>(), application.TypesInfo); PropertyDescriptorCollection dataListProperties = list.GetItemProperties(null); var complexProperty = dataListProperties.Find(nameof(TestClassWithReference.NamedObject), false); Assert.NotNull(complexProperty); var nestedProperties = list.GetItemProperties(new[] { complexProperty }); Assert.Equal(2, nestedProperties.Count); } }