public IFolder Add(IFolder folder) { Folder concrete = folder.AsFolder(); FolderRepository.Add(concrete); FolderRepository.Save(); return(concrete); }
private void ScanFolder(IFolder folder) { var result = Scanner.Scan(folder); var confirmed = Input.ProcessResult(folder.Name, result); if (confirmed.Count() > 0) { IEnumerable <IFile> files = confirmed .Where(r => r.Result == ScanResult.New) .Select(sr => new File() { FileName = Path.GetFileNameWithoutExtension(sr.Path), Extension = sr.Extension, FileLocation = sr.Path, Root = folder.AsFolder(), RootId = folder.Id, FileSize = new FileInfo(sr.Path).Length //- to list must be done, otherwise the following population will be lost }).ToList(); //- populate required entity tree foreach (var file in files) { IMediaFile media = Factory.GetMediaFile(file); file.Media = media; IMediaMetaData meta = Factory.GetMediaMetaData(media); media.MetaData = meta; } var processed = FileController.Add(files, folder.Id); Broadcaster.SendNewMediaMessage(processed.Select(f => f.Media)); HasChanged = true; } }