public bool CreateStructure(string Tree, string Root)
        {
            if (Root != null &&
                !Root.Equals(string.Empty))
            {
                //check if root of this tree is actualy root, or a subfolder
                Tuple <string, string> RootFolder = GetFolderAndParentFolder(Root);
                if (RootFolder == null)
                {
                    return(false);
                }

                //if root does not exist, return false
                if (!folderRepo.ExistFolderByNameAndParentPath(RootFolder.Item1, ((RootFolder.Item2.Equals("") ? "Root": RootFolder.Item2))))
                {
                    return(false);
                }

                List <Tuple <string, string> > FoldersToCreate = GetFoldersList(Tree, Root);
                if (FoldersToCreate == null)
                {
                    return(false);
                }

                foreach (Tuple <string, string> FolderToCreate in FoldersToCreate)
                {
                    Folder folder = new Folder
                    {
                        BookmarkType = BookmarkEntity.Type.FOLDER,
                        Name         = FolderToCreate.Item1,
                        ReadOnly     = false
                    };
                    if (FolderToCreate.Item2 != null && !FolderToCreate.Item2.Equals(string.Empty))
                    {
                        folder.ParentPath = FolderToCreate.Item2;
                    }
                    else
                    {
                        folder.ParentPath = "Root";
                    }
                    if (!folderRepo.ExistFolderByNameAndParentPath(folder.Name, folder.ParentPath))
                    {
                        folderRepo.InsertAsync(folder);
                    }
                    else
                    {
                        return(false);
                    }
                }
                db.SaveChanges();
                return(true);
            }
            return(false);
        }