// ReSharper restore UnusedAutoPropertyAccessor.Local private void SetUpFileTab() { var query = from file in Database.CollarFiles where file.Project == Project && (ShowDerivedFilesCheckBox.Checked || file.ParentFileId == null) && (ShowEmailFilesCheckBox.Checked || file.Format != 'E') && (ShowDownloadFilesCheckBox.Checked || file.Format != 'F') select new FileListItem { File = file, Name = file.FileName + (file.Status == 'I' ? " (Inactive)" : ""), CanDelete = file.ParentFileId == null && !file.ArgosDownloads.Any() }; var sortedList = query.OrderBy(f => f.File.Status) .ThenByDescending(f => f.File.ParentFileId ?? f.File.FileId) .ThenByDescending(f => f.File.FileId) .ToList(); FilesListBox.DataSource = sortedList; FilesListBox.DisplayMember = "Name"; FilesListBox.ClearItemColors(); for (int i = 0; i < sortedList.Count; i++) { if (sortedList[i].File.ParentFileId != null) { FilesListBox.SetItemColor(i, Color.Brown); } if (sortedList[i].File.Format == 'E') { FilesListBox.SetItemColor(i, Color.MediumBlue); } if (sortedList[i].File.Format == 'F') { FilesListBox.SetItemColor(i, Color.DarkMagenta); } if (sortedList[i].File.Status == 'I') { //Dim color of inactive files var c = FilesListBox.GetItemColor(i); FilesListBox.SetItemColor(i, ControlPaint.Light(c, 1.4f)); } } FilesTabPage.Text = sortedList.Count < 5 ? "Files" : String.Format("Files ({0})", sortedList.Count); EnableFileControls(); }