public static void UpdateTeeViewNode(AccountFileStates newFileState, TreeNode node) { if ((newFileState & AccountFileStates.Deleted) != 0) { node.Remove(); return; } if ((newFileState & AccountFileStates.New) != 0) { node.ForeColor = Color.Green; } }
public static AccountFileStates GetFileState(AccountFile file) { AccountFileStates ret = 0; var nDrives = file.Account.Drives.Count; var nDrivesSyncronized = file.Account.Drives.Select(x => file.GetDriveFile(x)).Count(x => x != null); DriveFile inventoryFile; if (file.Account.Drives.InventoryDrive == null) { inventoryFile = null; } else { nDrives--; inventoryFile = file.GetDriveFile(file.Account.Drives.InventoryDrive); if (inventoryFile != null) { nDrivesSyncronized--; } } if (nDrivesSyncronized != nDrives) { ret |= AccountFileStates.UnsyncronizedWithAllDrives; } if (file.Account.Drives.InventoryDrive != null) { if (inventoryFile == null) { ret |= AccountFileStates.PlacedOnlyDrive; } else if (nDrivesSyncronized == 0) { ret |= AccountFileStates.PlacedOnlyStorage; } } if (file.StorageFileId == null) { ret |= AccountFileStates.UnsyncronizedWithStorage; } else if (!file.HasValidStorageFileId) { ret |= AccountFileStates.Error; } return(ret); }
public void UpdateFileListItem(AccountFileStates newFileState, ListViewItem fileItem) { if ((newFileState & AccountFileStates.Deleted) != 0) { fileItem.Remove(); return; } if ((newFileState & AccountFileStates.New) != 0) { fileItem.ForeColor = Color.Blue; } if ((newFileState & AccountFileStates.UnsyncronizedWithAllDrives) != 0) { fileItem.ForeColor = Color.Red; } if ((newFileState & AccountFileStates.UnsyncronizedWithStorage) != 0) { fileItem.Font = UnsyncronizedFileItemFont; } if ((newFileState & AccountFileStates.SyncronizedWithDrive) != 0) { fileItem.ForeColor = SystemColors.ControlText; } if ((newFileState & AccountFileStates.SyncronizedWithStorage) != 0) { fileItem.Font = Font; } if ((newFileState & AccountFileStates.Error) != 0) { fileItem.BackColor = Color.Red; fileItem.ForeColor = Color.White; } if ((newFileState & AccountFileStates.PlacedOnlyDrive) != 0) { fileItem.BackColor = Color.LightGreen; } if ((newFileState & AccountFileStates.PlacedOnlyStorage) != 0) { fileItem.ForeColor = Color.Green; } }
// This is a positional argument public AccountFileStateChangeAttribute(AccountFileStates newState, string filePropertyName = "File", string parentFilePropertyName = null) { this.filePropertyName = filePropertyName; this.newState = newState; this.parentFilePropertyName = parentFilePropertyName; }