public virtual async Task <FileSystemResult <IDirectory> > CreateDirectoryAsync(string name, Dictionary <string, object> properties)
 {
     try
     {
         if (properties == null)
         {
             properties = new Dictionary <string, object>();
         }
         CreateDirectory(name);
         DirectoryInfo dinfo = new DirectoryInfo(Path.Combine(FullName, name));
         if (properties.Any(a => a.Key.Equals("ModifiedDate", StringComparison.InvariantCultureIgnoreCase)))
         {
             dinfo.LastWriteTime = (DateTime)properties.First(a => a.Key.Equals("ModifiedDate", StringComparison.InvariantCultureIgnoreCase)).Value;
         }
         if (properties.Any(a => a.Key.Equals("CreatedDate", StringComparison.InvariantCultureIgnoreCase)))
         {
             dinfo.CreationTime = (DateTime)properties.First(a => a.Key.Equals("CreatedDate", StringComparison.InvariantCultureIgnoreCase)).Value;
         }
         LocalDirectory f = new LocalDirectory(dinfo, FS);
         f.Parent            = this;
         FS.Refs[f.FullName] = f;
         IntDirectories.Add(f);
         return(await Task.FromResult(new FileSystemResult <IDirectory>(f)));
     }
     catch (Exception e)
     {
         return(new FileSystemResult <IDirectory>("Error : " + e.Message));
     }
 }
示例#2
0
 public override async Task <FileSystemResult> PopulateAsync()
 {
     IntDirectories = DriveInfo.GetDrives().Select(a => new LocalDrive(a, FS)
     {
         Parent = this
     }).Cast <DirectoryImplementation>().ToList();
     IntDirectories.AddRange(UncPaths.Select(a => new LocalDirectory(new DirectoryInfo(a), FS)));
     IsPopulated = true;
     return(await Task.FromResult(new FileSystemResult()));
 }
 public virtual async Task <FileSystemResult> PopulateAsync()
 {
     IntDirectories = GetDirectories().Select(a => new LocalDirectory(a, FS)
     {
         Parent = this
     }).Cast <DirectoryImplementation>().ToList();
     IntDirectories.ForEach(a => FS.Refs[a.FullName] = a);
     IntFiles = GetFiles().Select(a => new LocalFile(a, FS)
     {
         Parent = this
     }).ToList();
     IsPopulated = true;
     return(await Task.FromResult(new FileSystemResult()));
 }
示例#4
0
        public async Task <FileSystemResult <IDirectory> > CreateDirectoryAsync(string name, Dictionary <string, object> properties)
        {
            if (properties == null)
            {
                properties = new Dictionary <string, object>();
            }
            Json.Metadata j = new Json.Metadata();
            if (properties.Any(a => a.Key.Equals("ModifiedDate", StringComparison.InvariantCultureIgnoreCase)))
            {
                j.modifiedDate = (DateTime)properties.First(a => a.Key.Equals("ModifiedDate", StringComparison.InvariantCultureIgnoreCase)).Value;
            }
            if (properties.Any(a => a.Key.Equals("CreatedDate", StringComparison.InvariantCultureIgnoreCase)))
            {
                j.createdDate = (DateTime)properties.First(a => a.Key.Equals("CreatedDate", StringComparison.InvariantCultureIgnoreCase)).Value;
            }
            if (properties.Any(a => a.Key.Equals("Application", StringComparison.InvariantCultureIgnoreCase)))
            {
                j.createdBy = (string)properties.First(a => a.Key.Equals("Application", StringComparison.InvariantCultureIgnoreCase)).Value;
            }
            else
            {
                j.createdBy = "CloudFileSystem";
            }
            j.description = j.name = name;
            j.isShared    = false;
            j.kind        = "FOLDER";
            j.parents     = new List <string> {
                Id
            };
            string url = AmazonCreateDirectory.FormatRest(FS.OAuth.EndPoint.MetadataUrl, Guid.NewGuid().ToString().Replace("-", string.Empty));
            FileSystemResult <string> ex = await FS.OAuth.CreateMetadataStream <string>(url, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(j, Newtonsoft.Json.Formatting.None, new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            })), "application/json");

            if (ex.IsOk)
            {
                AmazonDirectory dir = new AmazonDirectory(this.FullName, FS)
                {
                    Parent = this
                };
                dir.SetData(ex.Result);
                FS.Refs[dir.FullName] = dir;
                IntDirectories.Add(dir);
                return(new FileSystemResult <IDirectory>(dir));
            }
            return(new FileSystemResult <IDirectory>(ex.Error));
        }
        public async Task <FileSystemResult <IDirectory> > CreateDirectoryAsync(string name, Dictionary <string, object> properties)
        {
            if (properties == null)
            {
                properties = new Dictionary <string, object>();
            }
            File f = new File();

            f.MimeType = "application/vnd.google-apps.folder";
            f.Title    = f.Description = name;
            if (Id != "ROOT")
            {
                f.Parents = new List <File.ParentReference>();
                f.Parents.Add(new File.ParentReference {
                    Id = Id
                });
            }
            if (properties.Any(a => a.Key.Equals("ModifiedDate", StringComparison.InvariantCultureIgnoreCase)))
            {
                f.ModifiedDate = (DateTime)properties.First(a => a.Key.Equals("ModifiedDate", StringComparison.InvariantCultureIgnoreCase)).Value;
            }
            if (properties.Any(a => a.Key.Equals("CreatedDate", StringComparison.InvariantCultureIgnoreCase)))
            {
                f.CreatedDate = (DateTime)properties.First(a => a.Key.Equals("CreatedDate", StringComparison.InvariantCultureIgnoreCase)).Value;
            }
            FileSystemResult <ExpandoObject> ex = await FS.OAuth.CreateMetadataStream <ExpandoObject>(GoogleCreateDir, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(f)), "application/json");

            if (ex.IsOk)
            {
                GoogleDriveDirectory dir = new GoogleDriveDirectory(FullName, FS)
                {
                    Parent = this
                };
                dir.SetData(JsonConvert.SerializeObject(ex.Result));
                FS.Refs[dir.FullName] = dir;
                IntDirectories.Add(dir);
                return(new FileSystemResult <IDirectory>(dir));
            }
            return(new FileSystemResult <IDirectory>(ex.Error));
        }
示例#6
0
 internal void AddUncPath(string path)
 {
     UncPaths.Add(path);
     IntDirectories.Add(new LocalDirectory(new DirectoryInfo(path), FS));
 }