Skip to content

Instantly share code, notes, and snippets.

@cgorshing
Created February 8, 2012 18:59
Show Gist options
  • Save cgorshing/1772198 to your computer and use it in GitHub Desktop.
Save cgorshing/1772198 to your computer and use it in GitHub Desktop.
Turned this ....
private void BindViews()
{
var associatedTable = new DataTable();
associatedTable.Columns.Add(new DataColumn("TestID", typeof (Int32)));
if (_onlineCourse != null && _onlineCourse.OnlineCourseID > 0)
{
foreach (OnlineCourseTest oct in OnlineCourseTest.GetAllByOnlineCourseID(_onlineCourse.OnlineCourseID))
associatedTable.Rows.Add(new object[] {oct.TestID});
}
var associatedView = new DataView(associatedTable);
var masterTable = new DataTable();
masterTable.Columns.Add(new DataColumn("Name", typeof (String)));
masterTable.Columns.Add(new DataColumn("Value", typeof (String)));
masterTable.Columns.Add(new DataColumn("IsAssociated", typeof (Boolean)));
foreach (Test test in Test.GetAllNonArchived())
{
associatedView.RowFilter = "TestID=" + test.TestID;
var isAssociated = associatedView.Count > 0;
masterTable.Rows.Add(new object[] {test.Title, test.TestID.ToString(), isAssociated});
}
var masterView = new DataView(masterTable);
var availableTable = new DataTable();
availableTable.Columns.Add(new DataColumn("Name", typeof (String)));
availableTable.Columns.Add(new DataColumn("Value", typeof (String)));
masterView.RowFilter = "IsAssociated=false";
foreach (DataRowView drv in masterView)
availableTable.Rows.Add(new object[] {drv["Name"].ToString(), drv["Value"].ToString()});
_availableView = new DataView(availableTable);
associatedTable = new DataTable();
associatedTable.Columns.Add(new DataColumn("Name", typeof (String)));
associatedTable.Columns.Add(new DataColumn("Value", typeof (String)));
masterView.RowFilter = "IsAssociated=true";
foreach (DataRowView drv in masterView)
associatedTable.Rows.Add(new object[] {drv["Name"].ToString(), drv["Value"].ToString()});
_associatedView = new DataView(associatedTable);
}
into ...
private void BindViews()
{
var masterTable = new DataTable();
masterTable.Columns.Add(new DataColumn("Name", typeof (String)));
masterTable.Columns.Add(new DataColumn("Value", typeof (int)));
foreach (Test test in Test.GetAllNonArchived())
{
masterTable.Rows.Add(new object[] {test.Title, test.TestID});
}
var compareValue = _onlineCourse == null ? -1 : _onlineCourse.TestId;
_availableView = new DataView(masterTable, "Value <>" + compareValue, "Name", DataViewRowState.Added);
_associatedView = new DataView(masterTable, "Value = " + compareValue, "Name", DataViewRowState.Added);
}
... still not happy where it is at.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment