Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
 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;
         }
     }
 }
Exemplo n.º 3
0
 public byte[] GetFileContent(SingleFileEntity <TPrimaryKey> entity, string fileName)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 4
0
 public IEnumerable <string> GetAttachedFilesList(SingleFileEntity <TPrimaryKey> entity)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 5
0
 public void DeleteFile(SingleFileEntity <TPrimaryKey> entity, string fileName)
 {
     throw new NotImplementedException();
 }