public override IEnumerable <FileManagerFile> GetFiles(FileManagerFolder folder) { FileSystemData folderItem = FindFolderItem(folder); return (from dbItem in DataSource where !dbItem.IsFolder && dbItem.ParentId == folderItem.Id select new FileManagerFile(this, folder, dbItem.Name)); }
public override IEnumerable <FileManagerFolder> GetFolders(FileManagerFolder parentFolder) { FileSystemData dbFolderItem = FindFolderItem(parentFolder); return (from dbItem in DataSource where dbItem.IsFolder && dbItem.ParentId == dbFolderItem.Id select new FileManagerFolder(this, parentFolder, dbItem.Name)); }
private void CreateFileSystemCfgFile() { FileSystemData fsData = new FileSystemData(); fsData.ConfFile.DefaultDatabase = this.textBoxDefaultDatabase.Text; fsData.ConfFile.DefaultSchema = this.textBoxDefautSchema.Text; fsData.ConfFile.InputDir = this.textBoxRootDirectory.Text; fsData.ConfFile.FileMask = this.textBoxFileMask.Text; fsData.Save(); }
protected FileSystemData FindFileItem(FileManagerFile file) { FileSystemData folderItem = FindFolderItem(file.Folder); List <FileSystemData> files = DataSource.Where(x => !x.IsFolder).ToList(); if (folderItem == null) { return(null); } return ((from dbItem in files where dbItem.ParentId == folderItem.Id && !dbItem.IsFolder && dbItem.Name == file.Name select dbItem).FirstOrDefault()); }
public static FileSystemData Read(string systemFilePath) { var fileContent = File.ReadAllText(systemFilePath); var match = Regex.Match(fileContent, @"(class\s+)(\S+)"); if (match?.Groups.Count != 3) { return(null); } var className = match.Groups[2].Value; var systemType = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(a => a.GetTypes()) .First(t => t.Name == className); var isSystem = typeof(SystemBase).IsAssignableFrom(systemType); if (!isSystem) { return(null); } var systemName = className; if (systemName.EndsWith("System")) { systemName = systemName.Substring(0, systemName.Length - "system".Length); } var withoutSingleComments = Regex.Replace(fileContent, @"^\s+\/\/.+$", "", RegexOptions.Multiline); var withoutComments = Regex.Replace(withoutSingleComments, @"\/\*.+\*\/", "", RegexOptions.Singleline); var withoutWhitespaces = Regex.Replace(withoutComments, @"[\r\n\t\f\v]+", " "); var lambdas = Regex.Matches(withoutWhitespaces, @"(?<=;)(\s*)(Entities.+?)(\s*;)"); FileSystemData data = new FileSystemData() { Name = systemName, Lambdas = new FileSystemLambdaData[lambdas.Count], }; for (int i = 0; i < lambdas.Count; i++) { var lambda = lambdas[i]; var lambdaData = ProcessLambda(lambda.Groups[2].Value); data.Lambdas[i] = lambdaData; } return(data); }
protected string GetRelativeName(FileSystemData folder) { FileSystemData root = GetRootFolder(); if (folder.Id == root.Id) { return(string.Empty); } if (folder.ParentId == root.Id) { return(folder.Name); } var folders = DataSource.Where(x => x.IsFolder); string name = GetRelativeName(folders.Where(x => x.Id == folder.ParentId).FirstOrDefault()); return(name == null ? null : Path.Combine(name, folder.Name)); }
public override void RenameFolder(FileManagerFolder folder, string name) { FileSystemData item = FindFolderItem(folder); item.Name = name; }
public override void RenameFile(FileManagerFile file, string name) { FileSystemData item = FindFileItem(file); item.Name = name; }
public override void MoveFolder(FileManagerFolder folder, FileManagerFolder newParentFolder) { FileSystemData item = FindFolderItem(folder); item.ParentId = FindFolderItem(newParentFolder).Id; }
public override void MoveFile(FileManagerFile file, FileManagerFolder newParentFolder) { FileSystemData item = FindFileItem(file); item.ParentId = FindFolderItem(newParentFolder).Id; }
public override void DeleteFolder(FileManagerFolder folder) { FileSystemData item = FindFolderItem(folder); DataSource.Remove(item); }
public override void DeleteFile(FileManagerFile file) { FileSystemData item = FindFileItem(file); DataSource.Remove(item); }