public override object Search(string path = null, string filter = null, string searchString = null, bool caseSensitive = false, IEnumerable <object> selectedItems = null) { Items.Clear(); SQLFileExplorerResponse data = (SQLFileExplorerResponse)Read(path, filter, selectedItems); Items.AddRange(data.files); getAllFiles(data, filter); data.files = Items.Where(item => new Regex(WildcardToRegex(searchString), (caseSensitive ? RegexOptions.None : RegexOptions.IgnoreCase)).IsMatch(item.name)); return(data); }
public override object CreateFolder(string path = null, string name = null, IEnumerable <object> selectedItems = null) { AddFolder(selectedItems, name, String.Empty, null); SQLFileExplorerResponse CreateResponse = new SQLFileExplorerResponse(); SQLFileExplorerDirectoryContent content = new SQLFileExplorerDirectoryContent(); content.name = name; var directories = new[] { content }; CreateResponse.files = (IEnumerable <SQLFileExplorerDirectoryContent>)directories; return(CreateResponse); }
public virtual object ReadDetails(int itemId) { SQLFileExplorerResponse CreateResponse = new SQLFileExplorerResponse(); SqlCommand myCommand = new SqlCommand("select * from " + TableName + " where ItemId =" + itemId, Connection); SqlDataReader myReader = myCommand.ExecuteReader(); while (myReader.Read()) { SQLFileDetails entry = new SQLFileDetails(); entry.Name = myReader["Name"].ToString().Trim(); entry.Type = myReader["IsFile"].ToString() == "True" ? myReader["MimeType"].ToString() : "Directory"; entry.Size = (myReader["Size"].ToString() != "" ? (long)myReader["Size"] : 0); entry.ParentID = (int)myReader["ParentID"]; myReader.Close(); var details = new[] { entry }; CreateResponse.details = (IEnumerable <SQLFileDetails>)details; return(CreateResponse); } return(null); }
public virtual void getAllFiles(SQLFileExplorerResponse data, string filter) { SQLFileExplorerResponse directoryList = new SQLFileExplorerResponse(); directoryList.files = (IEnumerable <SQLFileExplorerDirectoryContent>)data.files.Where(item => item.isFile == false); for (int i = 0; i < directoryList.files.Count(); i++) { IEnumerable <SQLFileExplorerDirectoryContent> selectedItem = new[] { directoryList.files.ElementAt(i) }; SQLFileExplorerResponse innerData = (SQLFileExplorerResponse)Read("", filter, selectedItem); innerData.files = innerData.files.Select(file => new SQLFileExplorerDirectoryContent { itemId = file.itemId, name = file.name, type = file.type, isFile = file.isFile, size = file.size, parentID = file.parentID, hasChild = file.hasChild, filterPath = (directoryList.files.ElementAt(i).filterPath + directoryList.files.ElementAt(i).name + "\\") }); Items.AddRange(innerData.files); getAllFiles(innerData, filter); } }
/// <summary> /// Reads all immediate files and sub-folders from the specified path and it returns the matched type of files, which are specified in “filter” parameter. /// </summary> /// <param name="path">Path of the selected folder.</param> /// <param name="filter">File types to filter.</param> /// <returns>System.Object.</returns> public virtual object Read(string path, string filter, IEnumerable <object> selectedItems = null) { SQLFileExplorerResponse ReadResponse = new SQLFileExplorerResponse(); try { object ReadRes = operation.Read(path, filter, selectedItems); ReadResponse = (SQLFileExplorerResponse)ReadRes; string physicalPath = GetPath(path); ReadResponse.cwd.permission = GetPathPermission(path); if (!ReadResponse.cwd.permission.Read) { SQLFileExplorerDirectoryContent[] fileDetails = new SQLFileExplorerDirectoryContent[0]; ReadResponse.files = fileDetails; return(ReadResponse); } var items = ReadResponse.files.ToArray(); for (int i = 0; i < items.Length; i++) { items[i].permission = GetFilePermission(physicalPath, items[i].name, items[i].isFile); if (items[i].isFile) { items[i].permission.EditContents = ReadResponse.cwd.permission.EditContents; items[i].permission.Upload = ReadResponse.cwd.permission.Upload; } } ReadResponse.files = items; return(ReadResponse); } catch (Exception e) { ReadResponse.error = e.GetType().FullName + ", " + e.Message; return(ReadResponse); } }
public override object Read(string path = null, string filter = null, IEnumerable <object> selectedItems = null) { try { List <SQLFileExplorerDirectoryContent> details = new List <SQLFileExplorerDirectoryContent>(); SqlDataReader myReader = null, myReader1 = null; int ID = RootNode; filter = filter.Replace(" ", ""); var extensions = (filter ?? "*").Split(",|;".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries); if (selectedItems != null) { foreach (SQLFileExplorerDirectoryContent item in selectedItems) { ID = item.itemId; break; } } SqlCommand myCommand = new SqlCommand("select ItemID, Name, ParentID, Size, IsFile, MimeType, Content From Product P INNER JOIN NameDetail N ON P.ItemID = N.FileId where ParentId =" + ID, Connection); // SqlCommand myCommand = new SqlCommand("select * from " + TableName + " where ParentId =" + ID, Connection); myReader = myCommand.ExecuteReader(); while (myReader.Read()) { bool canAdd = false; if (extensions[0].Equals("*.*") || extensions[0].Equals("*")) { canAdd = true; } else if (myReader["IsFile"].ToString() == "True") { var names = myReader["Name"].ToString().Trim().Split('.'); if (Array.IndexOf(extensions, "*." + names[names.Count() - 1]) >= 0) { canAdd = true; } else { canAdd = false; } } else { canAdd = true; } if (canAdd) { SQLFileExplorerDirectoryContent entry = new SQLFileExplorerDirectoryContent(); entry.itemId = (int)myReader["ItemId"]; entry.name = myReader["Name"].ToString().Trim(); entry.type = myReader["IsFile"].ToString() == "True" ? myReader["MimeType"].ToString() : "Directory"; entry.isFile = (bool)myReader["IsFile"]; entry.size = (myReader["Size"].ToString() != "" ? (long)myReader["Size"] : 0); entry.parentID = (int)myReader["ParentId"]; entry.hasChild = false; entry.filterPath = ""; details.Add(entry); } } myReader.Close(); for (int i = 0; i < details.Count; i++) { details[i].hasChild = HasChildDirectory(details[i].itemId); } SQLFileExplorerResponse ReadResponse = new SQLFileExplorerResponse(); ReadResponse.files = (IEnumerable <SQLFileExplorerDirectoryContent>)details; SQLFileExplorerDirectoryContent cwd = new SQLFileExplorerDirectoryContent(); SqlCommand myCommand1 = new SqlCommand("select ItemID, Name, ParentID, Size, IsFile, MimeType, Content From Product P INNER JOIN NameDetail N ON P.ItemID = N.FileId where ItemId =" + ID, Connection); // SqlCommand myCommand1 = new SqlCommand("select * from " + TableName + " where ItemId =" + ID, Connection); myReader1 = myCommand1.ExecuteReader(); while (myReader1.Read()) { cwd.itemId = (int)myReader1["ItemId"]; cwd.name = myReader1["Name"].ToString().Trim(); cwd.type = myReader1["IsFile"].ToString() == "True" ? myReader1["MimeType"].ToString() : "Directory"; cwd.isFile = (bool)myReader1["IsFile"]; cwd.size = (myReader1["Size"].ToString() != "" ? (long)myReader1["Size"] : 0); cwd.parentID = (int)myReader1["ParentId"]; cwd.hasChild = true; cwd.filterPath = ""; ReadResponse.cwd = cwd; } return(ReadResponse); } catch (Exception e) { Console.WriteLine(e.ToString()); } return(null); }