internal void RefreshInstances() { instanceDataGridView.SelectionChanged -= instanceDataGridView_SelectionChanged; try { var instance = GetSelectedProcessInstance(); var instances = K2Client.Instance.WorkflowManager.GetProcessInstances(this.ProcSet.ProcSetID); var bindingSource = new BindingSource(); bindingSource.DataSource = DataTableCreator.GetDataTable(instances); instanceBindingNavigator.BindingSource = bindingSource; instanceDataGridView.DataSource = bindingSource; instanceDataGridView.Tag = instances; if (instance != null) { var rowToSelect = (from r in instanceDataGridView.Rows.Cast <DataGridViewRow>() where Convert.ToInt32(r.Cells[Constants.DataTable.Instance.Id].Value).Equals(instance.ID) select r).FirstOrDefault(); if (rowToSelect != null) { rowToSelect.Selected = true; } } ProcessInstanceSelected(); } finally { instanceDataGridView.SelectionChanged += instanceDataGridView_SelectionChanged; } }
/// <summary> /// Creates a DataTable from an IEnumerable /// </summary> /// <typeparam name="TSource">The Generic type of the Collection</typeparam> /// <param name="Collection"></param> /// <returns>DataTable</returns> public static DataTable AsDataTable <TSource>(this IEnumerable <TSource> Collection) { DataTable dt = DataTableCreator <TSource> .GetDataTable(); Func <TSource, object[]> Map = DataRowMapperCache <TSource> .GetDataRowMapper(dt); foreach (TSource item in Collection) { dt.Rows.Add(Map(item)); } return(dt); }
private void RefreshActivities() { var instance = GetSelectedProcessInstance(); var activities = K2Client.Instance.WorkflowManager.GetProcActivities(instance?.ProcID); var bindingSource = new BindingSource(); bindingSource.DataSource = DataTableCreator.GetDataTable(activities); activitiesBindingNavigator.BindingSource = bindingSource; activitiesDataGridView.DataSource = bindingSource; activitiesDataGridView.Tag = activities; }