private void LoadProjects() { CB_ProjectList.InvokeIfRequired(s => { s.DataSource = null; s.Items.Clear(); }); IEnumerable <PublishedProject> projectList = ProjContext.LoadQuery(ProjContext.Projects.Include(p => p.Draft.Name, p => p.Draft, p => p.IsCheckedOut)); ProjContext.ExecuteQuery(); Dictionary <string, PublishedProject> projList = new Dictionary <string, PublishedProject> { { "Select a Project", null } }; foreach (PublishedProject project in projectList) { projList.Add(project.Draft.Name, project); } CB_ProjectList.InvokeIfRequired(s => { CB_ProjectList.SelectedIndexChanged += CB_ProjectList_SelectedIndexChanged; CB_ProjectList.DropDownStyle = ComboBoxStyle.DropDown; CB_ProjectList.AutoCompleteMode = AutoCompleteMode.SuggestAppend; CB_ProjectList.AutoCompleteSource = AutoCompleteSource.ListItems; CB_ProjectList.DataSource = new BindingSource(projList, null); CB_ProjectList.DisplayMember = "Key"; CB_ProjectList.ValueMember = "Value"; }); }
private void LoadProjectInfo() { DGV_Project.InvokeIfRequired(dg => { dg.Columns.Clear(); dg.DataSource = null; dg.AllowUserToAddRows = false; }); CB_ProjectList.InvokeIfRequired(cb => _publishedProject = cb.SelectedValue as PublishedProject); if (_publishedProject == null) { return; } if (Settings.Default.LoadAllProperties) { LoadQueryFields(_publishedProject.Draft); } else { ProjContext.Load(_publishedProject.Draft, p => p, p => p.Tasks, p => p.Assignments, p => p.ProjectResources); } ProjContext.ExecuteQuery(); List <PropertyInfo> retrievedFields = DisplayFields(_publishedProject.Draft); DataTable dt = CreateDataTableForDisplay(retrievedFields); dt.ExtendedProperties.Add(dt.Rows.Count, _publishedProject.Draft); DataRow dr = dt.NewRow(); retrievedFields.ForEach(prop => SetPropertyValueInDataColumn(dr, prop, _publishedProject.Draft)); dt.Rows.Add(dr); DGV_Project.InvokeIfRequired(dg => { dg.DataSource = dt; dg.Refresh(); TP_Tasks.Text = $"Tasks({_publishedProject.Draft.Tasks.Count()})"; TP_Assignments.Text = $"Assignments({_publishedProject.Draft.Assignments.Count()})"; TP_Resources.Text = $"Resources({_publishedProject.Draft.ProjectResources.Count()})"; if (_publishedProject.Draft.Tasks.Any()) { LoadTasksInfo(_publishedProject.Draft.Tasks); } if (_publishedProject.Draft.Assignments.Any()) { LoadAssignments(_publishedProject.Draft.Assignments); } if (_publishedProject.Draft.ProjectResources.Any()) { LoadProjectResources(_publishedProject.Draft.ProjectResources); } }); }