public void AttachFile(SingleFileEntity <TPrimaryKey> entity, string fileName, byte[] content, Dictionary <string, string> metadata) { CheckDirectoryValidity(); CheckAndRemoveOldFiles(entity); var guid = Guid.NewGuid().ToString(); var directory = Path.Combine(_config.Directory, guid); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } var path = Path.Combine(directory, fileName); File.WriteAllBytes(path, content); var fileData = new FileReference() { DateUploaded = DateTime.Now, Metadata = metadata, Mode = FileStorageModes.FileSystem, Directory = _config.Directory, RelativePath = Path.Combine(guid, fileName) }; _session.Save(fileData); entity.File = fileData; }
private void CheckAndRemoveOldFiles(SingleFileEntity <TPrimaryKey> entity) { if (entity.File != null) { try { var path = Path.Combine(entity.File.Directory, entity.File.RelativePath); File.Delete(path); var dir = Path.GetDirectoryName(path); Directory.Delete(dir); } catch (DirectoryNotFoundException) { } finally { entity.File = null; } } }
public byte[] GetFileContent(SingleFileEntity <TPrimaryKey> entity, string fileName) { throw new NotImplementedException(); }
public IEnumerable <string> GetAttachedFilesList(SingleFileEntity <TPrimaryKey> entity) { throw new NotImplementedException(); }
public void DeleteFile(SingleFileEntity <TPrimaryKey> entity, string fileName) { throw new NotImplementedException(); }