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)); } }
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())); }
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)); }
internal void AddUncPath(string path) { UncPaths.Add(path); IntDirectories.Add(new LocalDirectory(new DirectoryInfo(path), FS)); }