Esempio n. 1
0
        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);
        }
Esempio n. 4
0
        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);
        }