private List <ImportResult> ProcessPath(DownloadedMoviesScanCommand message) { if (!_diskProvider.FolderExists(message.Path) && !_diskProvider.FileExists(message.Path)) { _logger.Warn("Folder/File specified for import scan [{0}] doesn't exist.", message.Path); return(new List <ImportResult>()); } if (message.DownloadClientId.IsNotNullOrWhiteSpace()) { var trackedDownload = _trackedDownloadService.Find(message.DownloadClientId); if (trackedDownload != null) { _logger.Debug("External directory scan request for known download {0}. [{1}]", message.DownloadClientId, message.Path); return(_downloadedMovieImportService.ProcessPath(message.Path, message.ImportMode, trackedDownload.RemoteMovie.Movie, trackedDownload.DownloadItem)); } else { _logger.Warn("External directory scan request for unknown download {0}, attempting normal import. [{1}]", message.DownloadClientId, message.Path); return(_downloadedMovieImportService.ProcessPath(message.Path, message.ImportMode)); } } return(_downloadedMovieImportService.ProcessPath(message.Path, message.ImportMode)); }
private void Import(TrackedDownload trackedDownload) { var outputPath = trackedDownload.DownloadItem.OutputPath.FullPath; var importResults = _downloadedMovieImportService.ProcessPath(outputPath, ImportMode.Auto, trackedDownload.RemoteMovie.Movie, trackedDownload.DownloadItem); if (importResults.Empty()) { trackedDownload.Warn("No files found are eligible for import in {0}", outputPath); return; } if (importResults.Count(c => c.Result == ImportResultType.Imported) >= 1) { trackedDownload.State = TrackedDownloadStage.Imported; _eventAggregator.PublishEvent(new DownloadCompletedEvent(trackedDownload)); return; } if (importResults.Any(c => c.Result != ImportResultType.Imported)) { var statusMessages = importResults .Where(v => v.Result != ImportResultType.Imported) .Select(v => { if (v.ImportDecision.LocalMovie == null) { return(new TrackedDownloadStatusMessage("", v.Errors)); } return(new TrackedDownloadStatusMessage(Path.GetFileName(v.ImportDecision.LocalMovie.Path), v.Errors)); }) .ToArray(); trackedDownload.Warn(statusMessages); } }
public void Import(TrackedDownload trackedDownload) { SetImportItem(trackedDownload); if (!ValidatePath(trackedDownload)) { return; } trackedDownload.State = TrackedDownloadState.Importing; var outputPath = trackedDownload.ImportItem.OutputPath.FullPath; if (trackedDownload.RemoteMovie?.Movie == null) { trackedDownload.State = TrackedDownloadState.ImportPending; trackedDownload.Warn("Unknown Movie", outputPath); return; } var importResults = _downloadedMovieImportService.ProcessPath(outputPath, ImportMode.Auto, trackedDownload.RemoteMovie.Movie, trackedDownload.DownloadItem); if (VerifyImport(trackedDownload, importResults)) { return; } trackedDownload.State = TrackedDownloadState.ImportPending; if (importResults.Empty()) { trackedDownload.Warn("No files found are eligible for import in {0}", outputPath); } if (importResults.Any(c => c.Result != ImportResultType.Imported)) { var statusMessages = importResults .Where(v => v.Result != ImportResultType.Imported && v.ImportDecision.LocalMovie != null) .Select(v => new TrackedDownloadStatusMessage(Path.GetFileName(v.ImportDecision.LocalMovie.Path), v.Errors)) .ToArray(); trackedDownload.Warn(statusMessages); } }