public JsonResult GetDirectories(string term) { IEnumerable <string> dirs = null; try { //Windows (Including UNC) var windowsSep = term.LastIndexOf('\\'); if (windowsSep > -1) { dirs = _diskProvider.GetDirectories(term.Substring(0, windowsSep + 1)); } //Unix var index = term.LastIndexOf('/'); if (index > -1) { dirs = _diskProvider.GetDirectories(term.Substring(0, index + 1)); } } catch (Exception) { return(Json(new List <string>(), JsonRequestBehavior.AllowGet)); //Swallow the exceptions so proper JSON is returned to the client (Empty results) } if (dirs == null) { throw new Exception("A valid path was not provided"); } return(Json(dirs, JsonRequestBehavior.AllowGet)); }
public virtual void ProcessDropFolder(string dropFolder) { foreach (var subfolder in _diskProvider.GetDirectories(dropFolder)) { try { if (!_seriesProvider.SeriesPathExists(subfolder)) { ProcessDownload(new DirectoryInfo(subfolder)); } } catch (Exception e) { Logger.ErrorException("An error has occurred while importing folder: " + subfolder, e); } } foreach (var videoFile in _diskScanProvider.GetVideoFiles(dropFolder, false)) { try { ProcessVideoFile(videoFile); } catch (Exception ex) { Logger.ErrorException("An error has occurred while importing video file" + videoFile, ex); } } }
public virtual List <String> GetUnmappedFolders(string path) { Logger.Debug("Generating list of unmapped folders"); if (String.IsNullOrEmpty(path)) { throw new ArgumentException("Invalid path provided", "path"); } var results = new List <String>(); if (!_diskProvider.FolderExists(path)) { Logger.Debug("Path supplied does not exist: {0}", path); return(results); } foreach (string seriesFolder in _diskProvider.GetDirectories(path)) { if (!_seriesProvider.SeriesPathExists(seriesFolder)) { results.Add(seriesFolder.Normalize()); } } Logger.Debug("{0} unmapped folders detected.", results.Count); return(results); }
public virtual void Empty() { if (String.IsNullOrWhiteSpace(_configProvider.RecycleBin)) { logger.Info("Recycle Bin has not been configured, cannot empty."); return; } logger.Info("Removing all items from the recycling bin"); foreach (var folder in _diskProvider.GetDirectories(_configProvider.RecycleBin)) { _diskProvider.DeleteFolder(folder, true); } foreach (var file in _diskProvider.GetFiles(_configProvider.RecycleBin, SearchOption.TopDirectoryOnly)) { _diskProvider.DeleteFile(file); } logger.Trace("Recycling Bin has been emptied."); }
//PostDownloadView public ActionResult PendingProcessing() { ViewData["DropDir"] = _configProvider.DownloadClientTvDirectory; var dropDir = _configProvider.DownloadClientTvDirectory; var subFolders = _diskProvider.GetDirectories(dropDir); var models = new List <PendingProcessingModel>(); //Get the CreationTime and Files foreach (var folder in subFolders) { var model = new PendingProcessingModel(); model.Name = new DirectoryInfo(folder).Name; model.Created = _diskProvider.DirectoryDateCreated(folder).ToString(); model.Path = folder.Replace(Path.DirectorySeparatorChar, '|').Replace(Path.VolumeSeparatorChar, '^').Replace('\'', '`'); var files = _diskProvider.GetFileInfos(folder, "*.*", SearchOption.AllDirectories); var fileResult = "<div><div style=\"width: 600px; display: inline-block;\"><b>Name</b></div><div style=\"display: inline-block;\"><b>Size</b></div></div>"; foreach (var fileInfo in files) { fileResult += String.Format("<div><div style=\"width: 600px; display: inline-block;\">{0}</div><div style=\"display: inline-block;\">{1}</div></div>", fileInfo.Name, fileInfo.Length.ToBestFileSize(1)); } model.Files = fileResult; models.Add(model); } var serialized = new JavaScriptSerializer().Serialize(models); return(View((object)serialized)); }