public List <AweCsomeFile> SelectFilesFromItem <T>(int id, string filename = null) { var guid = StartMeasurement(); var localFiles = _db.GetAttachmentsFromItem <T>(id); if (filename != null) { localFiles = localFiles.Where(q => q.Filename == filename).ToList(); } if (!localFiles.Any(q => q.Stream == null)) { StopMeasurement(guid, "SelectFilesFromItem (Local)"); return(localFiles); } var spFiles = _baseTable.SelectFilesFromItem <T>(id, filename) ?? new List <AweCsomeFile>(); foreach (var localFile in localFiles) { if (localFile.Stream == null) { var match = spFiles.FirstOrDefault(q => q.Filename == localFile.Filename); if (match != null) { localFile.Stream = match.Stream; } } } StopMeasurement(guid, "SelectFilesFromItem (Local + SharePoint)"); return(localFiles); }