public override object CreateFolder(string path, string name, IEnumerable <object> selectedItems = null) { CreateFolderAsync(path, name, selectedItems).GetAwaiter().GetResult(); AjaxFileExplorerResponse CreateResponse = new AjaxFileExplorerResponse(); FileExplorerDirectoryContent content = new FileExplorerDirectoryContent(); content.name = name; var directories = new[] { content }; CreateResponse.files = (IEnumerable <FileExplorerDirectoryContent>)directories; return(CreateResponse); }
public override object CreateFolder(string path, string name, IEnumerable <object> selectedItems = null) { CloudBlockBlob blob = container.GetBlockBlobReference(path + name + "/temp.$$$"); blob.UploadText("."); AjaxFileExplorerResponse CreateResponse = new AjaxFileExplorerResponse(); FileExplorerDirectoryContent content = new FileExplorerDirectoryContent(); content.name = name; var directories = new[] { content }; CreateResponse.files = (IEnumerable <FileExplorerDirectoryContent>)directories; return(CreateResponse); }
public override object Read(string path, string filter, IEnumerable <object> selectedItems = null) { AjaxFileExplorerResponse ReadResponse = new AjaxFileExplorerResponse(); List <FileExplorerDirectoryContent> details = new List <FileExplorerDirectoryContent>(); try { filter = filter.Replace(" ", ""); var extensions = (filter ?? "*").Split(",|;".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries); CloudBlobDirectory sampleDirectory = container.GetDirectoryReference(path); IEnumerable <IListBlobItem> items = sampleDirectory.ListBlobs(false, BlobListingDetails.Metadata); foreach (IListBlobItem item in items) { bool canAdd = false; if (extensions[0].Equals("*.*") || extensions[0].Equals("*")) { canAdd = true; } else if (item.GetType() == typeof(CloudBlockBlob)) { CloudBlockBlob file = (CloudBlockBlob)item; var names = file.Name.ToString().Trim().Split('.'); if (Array.IndexOf(extensions, "*." + names[names.Count() - 1]) >= 0) { canAdd = true; } else { canAdd = false; } } else { canAdd = true; } if (canAdd) { if (item.GetType() == typeof(CloudBlockBlob)) { CloudBlockBlob file = (CloudBlockBlob)item; FileExplorerDirectoryContent entry = new FileExplorerDirectoryContent(); entry.name = file.Name.Replace(path, "").Replace("/", ""); entry.type = file.Properties.ContentType; entry.isFile = true; entry.size = file.Properties.Length; entry.dateModified = file.Properties.LastModified.Value.LocalDateTime.ToString(); entry.hasChild = false; entry.filterPath = ""; details.Add(entry); } else if (item.GetType() == typeof(CloudBlobDirectory)) { CloudBlobDirectory directory = (CloudBlobDirectory)item; FileExplorerDirectoryContent entry = new FileExplorerDirectoryContent(); entry.name = directory.Prefix.Replace(path, "").Replace("/", ""); entry.type = "Directory"; entry.isFile = false; entry.size = 0; //entry.dateModified = directory.Properties.LastModified.ToString(); entry.hasChild = HasChildDirectory(directory.Prefix); entry.filterPath = ""; details.Add(entry); } } } } catch (Exception e) { ReadResponse.error = e.GetType().FullName + ", " + e.Message; return(ReadResponse); } ReadResponse.files = (IEnumerable <FileExplorerDirectoryContent>)details; return(ReadResponse); }
public async Task <AjaxFileExplorerResponse> ReadAsync(string path, string filter, IEnumerable <object> selectedItems = null) { OperationContext context = new OperationContext(); BlobRequestOptions options = new BlobRequestOptions(); AjaxFileExplorerResponse ReadResponse = new AjaxFileExplorerResponse(); List <FileExplorerDirectoryContent> details = new List <FileExplorerDirectoryContent>(); FileExplorerDirectoryContent cwd = new FileExplorerDirectoryContent(); try { filter = filter.Replace(" ", ""); var extensions = (filter ?? "*").Split(",|;".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries); CloudBlobDirectory sampleDirectory = container.GetDirectoryReference(path); cwd.name = sampleDirectory.Prefix.Replace("/", ""); cwd.type = "File Folder"; cwd.size = 0; cwd.isFile = sampleDirectory.Uri.IsFile; cwd.hasChild = await HasChildDirectory(path); cwd.dateModified = sampleDirectory.Container.Properties.LastModified.ToString(); ReadResponse.cwd = cwd; string Oper = "Read"; var items = await AsyncReadCall(path, Oper); foreach (var item in items.Results) { bool canAdd = false; if (extensions[0].Equals("*.*") || extensions[0].Equals("*")) { canAdd = true; } else if (item.GetType() == typeof(CloudBlockBlob)) { CloudBlockBlob file = (CloudBlockBlob)item; var names = file.Name.ToString().Trim().Split('.'); if (Array.IndexOf(extensions, "*." + names[names.Count() - 1]) >= 0) { canAdd = true; } else { canAdd = false; } } else { canAdd = true; } if (canAdd) { if (item.GetType() == typeof(CloudBlockBlob)) { CloudBlockBlob file = (CloudBlockBlob)item; FileExplorerDirectoryContent entry = new FileExplorerDirectoryContent(); entry.name = file.Name.Replace(path, ""); //entry.type = file.Properties.ContentType; entry.type = "File"; entry.isFile = true; entry.size = file.Properties.Length; entry.dateModified = file.Properties.LastModified.Value.LocalDateTime.ToString(); entry.hasChild = false; entry.filterPath = ""; details.Add(entry); } else if (item.GetType() == typeof(CloudBlobDirectory)) { CloudBlobDirectory directory = (CloudBlobDirectory)item; FileExplorerDirectoryContent entry = new FileExplorerDirectoryContent(); entry.name = directory.Prefix.Replace(path, "").Replace("/", ""); entry.type = "Directory"; entry.isFile = false; entry.size = 0; entry.hasChild = await HasChildDirectory(directory.Prefix); entry.filterPath = ""; details.Add(entry); } } } } catch (Exception e) { return(ReadResponse); } ReadResponse.files = (IEnumerable <FileExplorerDirectoryContent>)details; return(ReadResponse); }