BlogEngine.Core.Providers.DbFileSystemProvider.GetDirectory C# (CSharp) Method

GetDirectory() public method

gets a directory by the virtual path, with a flag to create if not found
public GetDirectory ( string VirtualPath, bool CreateNew ) : FileSystem.Directory
VirtualPath string The virtual path
CreateNew bool bool yes \ no to create the director.
return FileSystem.Directory
        public override FileSystem.Directory GetDirectory(string VirtualPath, bool CreateNew)
        {
            VirtualPath = VirtualPath.VirtualPathToDbPath();
            FileSystem.FileStoreDb db = new FileSystem.FileStoreDb(this.connectionString);
            if (string.IsNullOrWhiteSpace(VirtualPath))
            {
                var directory = db.FileStoreDirectories.FirstOrDefault(x => x.BlogID == Blog.CurrentInstance.Id && x.ParentID == null);
                if (directory == null)
                {
                    db.Dispose();
                    return this.CreateDirectory(VirtualPath);
                }
                var obj = directory.CopyToDirectory();
                db.Dispose();
                return obj;
            }
            else
            {
                var dir = db.FileStoreDirectories.FirstOrDefault(x => x.FullPath.ToLower() == VirtualPath.ToLower() && x.BlogID == Blog.CurrentInstance.Id);
                if (dir == null)
                {
                    var newDirectoryPieces = VirtualPath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
                    var cPath = string.Empty;
                    foreach (var pieces in newDirectoryPieces)
                    {
                        cPath = string.Format("{0}/{1}", cPath, pieces);
                        if (!DirectoryExists(cPath))
                            CreateDirectory(cPath);
                    }
                    var nObj = GetDirectory(VirtualPath);
                    db.Dispose();
                    return nObj;
                }
                var obj = dir.CopyToDirectory();
                db.Dispose();
                return obj;
            }
        }

Same methods

DbFileSystemProvider::GetDirectory ( FileSystem BaseDirectory ) : FileSystem.Directory
DbFileSystemProvider::GetDirectory ( FileSystem BaseDirectory, bool CreateNew ) : FileSystem.Directory
DbFileSystemProvider::GetDirectory ( string VirtualPath ) : FileSystem.Directory