public void Handle(VideoFileOperationCoroutine message) { if (!desiredFileOperationsStack.Contains(message) && message.DesiredFileAction == AcceptableFileAction) { desiredFileOperationsStack.Add(message.Register(desiredFileOperationsStack)); FindAcceptingFolder(message); } }
public void Handle(VideoFileOperationCoroutine message) { if (!fileOperationsStack.Contains(message) && message.DesiredFileAction != VideoArchiveAction.NoAction) { fileOperationsStack.Add(message.Register(fileOperationsStack)); } //Items.SelectMany(sg => sg.VideoFileTree).Cast<VideoFileStorageDevice>() // .Apply(sd => sd.AvailableFreeSpace = sd.StorageDevice.AvailableFreeSpace // + fileOperationsStack.Where(op => (op.AcceptedFileAction == VideoArchiveAction.ToArchive || op.AcceptedFileAction == VideoArchiveAction.ToPrelimArchive) && op.BaseFile.ParentFolder.StorageDevice.FolderPath == sd.SeriesDirectoryAsPath).Sum(op => op.ByteVolume) // - fileOperationsStack.Where(op => (op.AcceptedFileAction == VideoArchiveAction.ToArchive || op.AcceptedFileAction == VideoArchiveAction.ToPrelimArchive || op.AcceptedFileAction == VideoArchiveAction.TransferCopy) && op.DestinationSeriesFolder.StorageDevice.FolderPath == sd.SeriesDirectoryAsPath).Sum(op => op.ByteVolume)); }
private void FindAcceptingFolder(VideoFileOperationCoroutine operation) { //if (desiredFileOperationsStack.Contains(operation) && operation.DesiredFileAction != operation.AcceptedFileAction && VideoFileTree.Count > 0) //{ // bool destinationFound = false; // foreach (ITreeViewDisplayable sd in VideoFileTree) // { // if (sd.Children.Select(sf => sf.DisplayName).Contains(operation.BaseFile.ParentFolder.Directory.Name)) // { // destinationFound = true; // operation.DestinationSeriesFolder = (SeriesFolder) sd.Children.Single(sf => sf.DisplayName == operation.BaseFile.ParentFolder.Directory.Name); // break; // } // } // if (!destinationFound) // { // operation.DestinationSeriesFolder = VideoFileTree.Cast<VideoFileStorageDevice>().OrderBy(sd => sd.AvailableFreeSpace).First().GetNewSeriesFolder(operation.BaseFile.ParentFolder.Directory.Name); // } // operation.AcceptedFileAction = operation.DesiredFileAction; //} }