Beispiel #1
0
 protected internal override void DoRefresh(FileSystemSessionItem item)
 {
   var fsh = item.Handle as FSH;
   if (fsh==null) return;
   var fsi = fsh.m_Info;
   fsi.Refresh();
 }
Beispiel #2
0
 protected internal override DateTime? DoGetModificationTimestamp(FileSystemSessionItem item)
 {
     WebDAV.Item wdItem = GetSVNItem(item);
     return wdItem.LastModificationDate;
 }
Beispiel #3
0
 protected internal override void DoDeleteItem(FileSystemSessionItem item)
 {
     throw new NotImplementedException();
 }
Beispiel #4
0
        protected internal override ulong DoGetItemSize(FileSystemSessionItem item)
        {
            var s3session = (S3V4FileSystemSession)item.Session;
            var handle = item.Handle as S3V4FSH;

            FileSystemFile file = item as FileSystemFile;
            if (file != null)
            {
              IDictionary<string, string> metaHeaders = S3V4.GetItemMetadata(handle.Path,
            s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, s3session.TimeoutMs);
              return (ulong)metaHeaders["Content-Length"].AsLong();
            }

            FileSystemDirectory dir = item as FileSystemDirectory;
            if (dir != null)
            {
              ulong size = 0;
              foreach( S3V4ListBucketItem subItem in getSubitemNames( dir, true).Where(si => !si.IsFolder))
              {
            size += subItem.Size;
              }
              return size;
            }

            throw new NFXException(NFX.Web.StringConsts.ARGUMENT_ERROR + this.GetType().Name + ".DoGetItemSize(item is FileSystemFile or FileSystemDirectory)");
        }
Beispiel #5
0
 protected internal override void DoDeleteItem(FileSystemSessionItem item)
 {
     throw new NotImplementedException();
 }
 protected internal override bool DoGetReadOnly(FileSystemSessionItem item)
 {
   return GetHandle(item).IsReadOnly;
 }
 protected internal override DateTime? DoGetModificationTimestamp(FileSystemSessionItem item)
 {
   return GetHandle(item).ModifiedDate;
 }
      protected internal override bool DoRenameItem(FileSystemSessionItem item, string newName)
      {
        var session = GetSession(item);
        var handle = GetHandle(item);

        session.Client.Rename(handle.Id, newName);

        return true;
      }
Beispiel #9
0
 private static GoogleDriveHandle GetHandle(FileSystemSessionItem item)
 {
     return((GoogleDriveHandle)item.Handle);
 }
Beispiel #10
0
 protected internal override bool DoGetReadOnly(FileSystemSessionItem item)
 {
     return(GetHandle(item).IsReadOnly);
 }
Beispiel #11
0
 protected internal override DateTime?DoGetModificationTimestamp(FileSystemSessionItem item)
 {
     return(GetHandle(item).ModifiedDate);
 }
Beispiel #12
0
 private SVNFSH GetSVNFSH(FileSystemSessionItem item)
 {
     return(item.Handle as SVNFSH);
 }
Beispiel #13
0
 private WebDAV.Item GetSVNItem(FileSystemSessionItem item)
 {
     return(GetSVNFSH(item).Item);
 }
Beispiel #14
0
 protected internal override DateTime?DoGetModificationTimestamp(FileSystemSessionItem item)
 {
     WebDAV.Item wdItem = GetSVNItem(item);
     return(wdItem.LastModificationDate);
 }
Beispiel #15
0
 protected internal override FileSystemStream DoGetMetadataStream(FileSystemSessionItem item, Action <FileSystemStream> disposeAction)
 {
     throw new NotImplementedException();
 }
Beispiel #16
0
 protected internal override bool DoGetReadOnly(FileSystemSessionItem item)
 {
     return true;
 }
Beispiel #17
0
 private SVNFSH GetSVNFSH(FileSystemSessionItem item)
 {
     return item.Handle as SVNFSH;
 }
Beispiel #18
0
 private static GoogleDriveSession GetSession(FileSystemSessionItem item)
 {
     return((GoogleDriveSession)item.Session);
 }
Beispiel #19
0
      protected internal override ulong DoGetItemSize(FileSystemSessionItem item)
      {
        var session = (GoogleDriveSession)item.Session;
        var handle = (GoogleDriveHandle)item.Handle;
        var client = session.Client;

        if (!handle.IsFolder)
        {
          return handle.Size;
        }
        else if (item is FileSystemDirectory)
        {
          var files = client.GetFiles(handle.Id, recursive: true);

          var size = 0ul;

          foreach (var file in files)
          {
            size += file.Size;
          }

          return size;
        }

        throw new NFXException(NFX.Web.StringConsts.ARGUMENT_ERROR + this.GetType().Name + ".DoGetItemSize(item is FileSystemFile or FileSystemDirectory)");
      }
Beispiel #20
0
 protected internal override bool DoRenameItem(FileSystemSessionItem item, string newName)
 {
     throw new NotImplementedException();
 }
Beispiel #21
0
      protected internal override void DoSetModificationTimestamp(FileSystemSessionItem item, DateTime timestamp)
      {
        var session = GetSession(item);
        var handle = GetHandle(item);
          
        session.Client.SetModifiedDate(handle.Id, timestamp);

        handle.ModifiedDate = timestamp;
      }
Beispiel #22
0
 protected internal override DateTime?DoGetLastAccessTimestamp(FileSystemSessionItem item)
 {
     throw new NotImplementedException();
 }
Beispiel #23
0
 private static GoogleDriveHandle GetHandle(FileSystemSessionItem item)
 {
     return (GoogleDriveHandle)item.Handle;
 }
Beispiel #24
0
 protected internal override void DoSetLastAccessTimestamp(FileSystemSessionItem item, DateTime timestamp)
 {
     throw new NotImplementedException();
 }
Beispiel #25
0
        protected internal override void DoDeleteItem(FileSystemSessionItem item)
        {
            var s3session = (S3V4FileSystemSession)item.Session;
            var handle = (S3V4FSH)item.Handle;

            FileSystemFile file = item as FileSystemFile;
            if (file != null)
            {
              S3V4.RemoveItem(handle.Path, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, s3session.TimeoutMs);
              return;
            }

            FileSystemDirectory dir = item as FileSystemDirectory;
            if (dir != null)
            {
              // reverse order to get children prior to parents
              foreach( S3V4ListBucketItem subItem in getSubitemNames( dir, true).Reverse())
              {
            string subItemPath = CombinePaths( handle.Path, subItem.Key);
            S3V4.RemoveItem(subItemPath, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, s3session.TimeoutMs);
              }

              S3V4.RemoveFolder(handle.Path, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, s3session.TimeoutMs);
              return;
            }
        }
Beispiel #26
0
 protected internal override bool DoGetReadOnly(FileSystemSessionItem item)
 {
     return(false);
 }
Beispiel #27
0
        protected internal override DateTime? DoGetModificationTimestamp(FileSystemSessionItem item)
        {
            var s3session = (S3V4FileSystemSession)item.Session;
            var handle = item.Handle as S3V4FSH;

            var metaHeaders = S3V4.GetItemMetadata(handle.Path, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region,
              s3session.TimeoutMs);
            return metaHeaders["Last-Modified"].AsDateTime();
        }
Beispiel #28
0
 protected internal override void DoSetReadOnly(FileSystemSessionItem item, bool readOnly)
 {
     throw new NotImplementedException();
 }
Beispiel #29
0
        protected internal override ulong DoGetItemSize(FileSystemSessionItem item)
        {
            var wdItem = GetSVNItem(item);

            var file = wdItem as WebDAV.File;
            if (file != null) return file.Size;

            var dir = wdItem as WebDAV.Directory;
            if (dir != null) return GetDirectorySize(dir);

            throw new NFXException(NFX.Web.StringConsts.ARGUMENT_ERROR + this.GetType().Name + ".DoGetItemSize(item is FileSystemFile or FileSystemDirectory)");
        }
Beispiel #30
0
 protected internal override FileSystemStream DoGetMetadataStream(FileSystemSessionItem item, Action <FileSystemStream> disposeAction)
 {
     return(null);
 }
Beispiel #31
0
 protected internal override FileSystemStream DoGetPermissionsStream(FileSystemSessionItem item, Action<FileSystemStream> disposeAction)
 {
     throw new NotImplementedException();
 }
Beispiel #32
0
        protected internal override DateTime?DoGetLastAccessTimestamp(FileSystemSessionItem item)
        {
            var fsi = ((FSH)item.Handle).m_Info;

            return(fsi.LastAccessTimeUtc);
        }
Beispiel #33
0
 protected internal override bool DoRenameItem(FileSystemSessionItem item, string newName)
 {
     throw new NotImplementedException();
 }
Beispiel #34
0
        protected internal override void DoSetLastAccessTimestamp(FileSystemSessionItem item, DateTime timestamp)
        {
            var fsi = ((FSH)item.Handle).m_Info;

            fsi.LastAccessTimeUtc = timestamp;
        }
Beispiel #35
0
 private WebDAV.Item GetSVNItem(FileSystemSessionItem item)
 {
     return GetSVNFSH(item).Item;
 }
Beispiel #36
0
        protected internal override bool DoGetReadOnly(FileSystemSessionItem item) //Windows does not support ReadOnly directories
        {
            var fi = ((FSH)item.Handle).m_Info as FileInfo;

            return(fi != null ? fi.IsReadOnly : false);
        }
Beispiel #37
0
      protected internal override void DoDeleteItem(FileSystemSessionItem item)
      {
        var session = GetSession(item);
        var handle = GetHandle(item);

        session.Client.Delete(handle.Id);
      }
Beispiel #38
0
        protected internal override ulong DoGetItemSize(FileSystemSessionItem item)
        {
            var fsi = ((FSH)item.Handle).m_Info;
            if (fsi is DirectoryInfo)
            {
              var result = 0ul;
              var di = fsi as DirectoryInfo;

              var files = di.GetFiles("*.*", SearchOption.AllDirectories);

            foreach(var file in files)
            result += (ulong)file.Length;

              return result;
            }
            else
             return (ulong)((FileInfo)fsi).Length;
        }
Beispiel #39
0
 protected internal override FileSystemStream DoGetMetadataStream(FileSystemSessionItem item, Action<FileSystemStream> disposeAction)
 {
   return null;
 }
Beispiel #40
0
 protected internal override DateTime? DoGetModificationTimestamp(FileSystemSessionItem item)
 {
     var fsi = ((FSH)item.Handle).m_Info;
     return fsi.LastWriteTimeUtc;
 }
Beispiel #41
0
 protected internal override DateTime? DoGetLastAccessTimestamp(FileSystemSessionItem item)
 {
   throw new NotImplementedException();
 }
Beispiel #42
0
 //Windows does not support ReadOnly directories
 protected internal override bool DoGetReadOnly(FileSystemSessionItem item)
 {
     var fi = ((FSH)item.Handle).m_Info as FileInfo;
     return fi!=null ? fi.IsReadOnly : false;
 }
Beispiel #43
0
 protected internal override void DoSetLastAccessTimestamp(FileSystemSessionItem item, DateTime timestamp)
 {
   throw new NotImplementedException();
 }
Beispiel #44
0
        protected internal override bool DoRenameItem(FileSystemSessionItem item, string newName)
        {
            var fsi = ((FSH)item.Handle).m_Info;
            if (fsi is FileInfo)
            {
              File.Move(fsi.FullName, Path.Combine(((FileInfo)fsi).DirectoryName, newName) );
              return true;
            }
            if (fsi is DirectoryInfo)
            {
              Directory.Move(fsi.FullName, Path.Combine(((DirectoryInfo)fsi).Parent.FullName, newName) );
              return true;
            }

            return false;
        }
Beispiel #45
0
 protected internal override void DoSetReadOnly(FileSystemSessionItem item, bool readOnly)
 {
   throw new NotImplementedException();
 }
Beispiel #46
0
 protected internal override void DoSetModificationTimestamp(FileSystemSessionItem item, DateTime timestamp)
 {
     var fsi = ((FSH)item.Handle).m_Info;
     fsi.LastWriteTimeUtc = timestamp;
 }
Beispiel #47
0
 private static GoogleDriveSession GetSession(FileSystemSessionItem item)
 {
     return (GoogleDriveSession)item.Session;
 }
Beispiel #48
0
 //Windows does not support ReadOnly directories
 protected internal override void DoSetReadOnly(FileSystemSessionItem item, bool readOnly)
 {
     var fi = ((FSH)item.Handle).m_Info as FileInfo;
     if (fi!=null)
       fi.IsReadOnly = readOnly;
 }