private void onIsSelectedChanged(object sender, EventArgs e)
        {
            FileTreeItem item = (FileTreeItem)sender;
            bool         isCurrentSelected = item.IsSelected ?? false;

            if (sender is FolderData)
            {
                //update all inner state
                foreach (var folder in new FolderDataEnumerable((FolderData)sender)
                         .Reverse())
                {
                    foreach (var file in folder.Files)
                    {
                        file.SetIsSelected(isCurrentSelected);
                    }
                    folder.UpdateFolderState(isCurrentSelected);
                }
            }

            //update all upper folder state
            foreach (var folder in new UpperFolderEnumerable(item))
            {
                folder.UpdateFolderState(isCurrentSelected);
            }
        }
Example #2
0
        /// <summary>
        /// Binds the form.
        /// </summary>
        private void BindForm()
        {
            bool pageExists = false;

            if (PageId > 0)
            {
                using (IDataReader reader = FileTreeItem.GetItemById(PageId))
                {
                    if (reader.Read())
                    {
                        pageExists = true;
                        Name.Text  = reader["Name"].ToString();
                    }
                    reader.Close();
                }
            }

            if (!pageExists)
            {
                // update UI for creating a new folder
                BindParentFolderList();
                ParentFolderRow.Visible = true;
            }

            BindRoles();
        }
Example #3
0
        public void GetChildrenShouldReturnListOfChildren()
        {
            _fileTree.Add(GetFile(new String[] { "one", "two", "three.cs" }));
            _fileTree.Add(GetFile(new String[] { "one", "two", "four.cs" }));

            StringBuilder path = new StringBuilder();

            path.Append(Path.DirectorySeparatorChar);

            FileTreeItem root = new FileTreeItem(null, path.ToString());

            path.Append("one" + Path.DirectorySeparatorChar);
            FileTreeItem one = new FileTreeItem(root, path.ToString());

            path.Append("two" + Path.DirectorySeparatorChar);
            FileTreeItem two = new FileTreeItem(one, path.ToString());

            FileTreeItem three = new FileTreeItem(two, path.ToString() + "three.cs");
            FileTreeItem four  = new FileTreeItem(two, path.ToString() + "four.cs");

            IList <FileTreeItem> expected = new List <FileTreeItem>();

            expected.Add(three);
            expected.Add(four);

            IList <FileTreeItem> actual = new List <FileTreeItem>(_fileTree.GetChildrenOf(two));

            CollectionAssert.AreEquivalent(expected, actual);
        }
Example #4
0
        /// <summary>
        /// Processes the move command.
        /// </summary>
        /// <param name="args">The args.</param>
        void ProcessMoveCommand(Dictionary <string, object> args)
        {
            int folderId = 0;

            string folderString = args["folder"] as string;

            if (String.IsNullOrEmpty(folderString) || !Int32.TryParse(folderString, out folderId))
            {
                return;
            }

            string[] items = MyListView.CurrentListView.GetCheckedCollection();

            if (items != null)
            {
                for (int i = 0; i < items.Length; i++)
                {
                    string[] keys = EcfListView.GetPrimaryKeyIdStringItems(items[i]);
                    if (keys != null)
                    {
                        int id = Int32.Parse(keys[0]);
                        FileTreeItem.MoveTo(id, folderId);
                    }
                }
            }
        }
Example #5
0
        /// <summary>
        /// Loads the data and data bind.
        /// </summary>
        private void LoadDataAndDataBind()
        {
            DataTable  files  = FileTreeItem.LoadItemByFolderIdDT(FolderId);
            DataColumn column = new DataColumn("CheckboxEnabled", typeof(System.Boolean));

            files.Columns.Add(column);
            files.Columns.Add(new DataColumn("ImageUrl", typeof(string)));
            using (IDataReader reader = FileTreeItem.LoadParent(FolderId))
            {
                if (reader.Read())
                {
                    DataRow row = files.NewRow();
                    row["CheckboxEnabled"] = false;
                    row["PageId"]          = (int)reader["PageId"];
                    row["Name"]            = "[..]";
                    row["IsDefault"]       = false;
                    row["IsPublic"]        = true;
                    row["IsFolder"]        = true;
                    row["Order"]           = -1000000;
                    row["SiteId"]          = SiteId;
                    row["ImageUrl"]        = Page.ResolveUrl("~/Apps/Content/images/Up One Level.png");
                    files.Rows.InsertAt(row, 0);
                }
                reader.Close();
            }

            DataView view = new DataView(files);

            view.Sort = "IsFolder DESC, Order";

            MyListView.CurrentListView.PrimaryKeyId = EcfListView.MakePrimaryKeyIdString("PageId", "SiteId", "IsFolder");
            MyListView.DataSource = view;
            DataBind();
        }
Example #6
0
        /// <summary>
        /// Updates an existing page.
        /// </summary>
        /// <param name="reader"></param>
        private void EditPage(IDataReader reader)
        {
            string fileName      = MakePageName(Name.Text);
            bool   fileIsDefault = false;
            bool   fileIsPublic  = false;

            bool isFolder = (bool)reader["IsFolder"];

            if (isFolder)
            {
                return;
            }

            fileIsDefault = IsDefault.IsSelected;

            // clear old default in current folder
            if (fileIsDefault)
            {
                string outline = ((string)reader[_OutlineKey]).Substring(0, ((string)reader[_OutlineKey]).LastIndexOf('/') + 1);
                using (IDataReader reader2 = FileTreeItem.GetItemByOutline(outline, SiteId))
                {
                    while (reader2.Read())
                    {
                        FileTreeItem.UpdateFileItem((int)reader2[_PageIdKey], (string)reader2["Name"], (bool)reader2["IsPublic"], (bool)reader["IsFolder"], false, (string)reader2[reader2.FieldCount - 1] /*MasterPage*/, SiteId);
                    }
                    reader2.Close();
                }
            }

            // update page attributes
            FileTreeItem.UpdateFileItem(PageId, fileName, fileIsPublic, false, fileIsDefault, MasterPageText.Text, SiteId);
            PageAttributes.Update(PageId, txtTitle.Text, txtKeywords.Text, txtDescription.Text);
        }
Example #7
0
        /// <summary>
        /// Binds the roles.
        /// </summary>
        private void BindRoles()
        {
            RolesList.DataSource = Roles.GetAllRoles();
            RolesList.DataBind();

            foreach (ListItem item in RolesList.Items)
            {
                using (IDataReader reader = FileTreeItem.PageAccessGetByRoleIdPageId(item.Value, PageId))
                {
                    if (reader.Read())
                    {
                        item.Selected = true;
                    }
                    else
                    {
                        item.Selected = false;
                    }

                    reader.Close();
                }
            }

            // select Everyone role in case it is a new folder
            if (PageId <= 0)
            {
                ListItem everyoneItem = RolesList.Items.FindByValue(AppRoles.EveryoneRole);
                if (everyoneItem != null)
                {
                    everyoneItem.Selected = true;
                }
            }
        }
Example #8
0
        /// <summary>
        /// Updates an existing folder.
        /// </summary>
        /// <param name="reader"></param>
        private void EditFolder(IDataReader reader)
        {
            FileTreeItem.UpdateFileItem(PageId, Name.Text, false, true, false, String.Empty, SiteId);

            // update folder access
            foreach (ListItem item in RolesList.Items)
            {
                if (item.Selected)
                {
                    using (IDataReader reader1 = FileTreeItem.PageAccessGetByRoleIdPageId(item.Value, PageId))
                    {
                        if (!reader1.Read())
                        {
                            FileTreeItem.AddPageAccess(item.Value, PageId);
                        }
                        reader1.Close();
                    }
                }
                else
                {
                    using (IDataReader reader2 = FileTreeItem.PageAccessGetByRoleIdPageId(item.Value, PageId))
                    {
                        if (reader2.Read())
                        {
                            FileTreeItem.DeletePageAccess((int)reader2["PageAccessId"]);
                        }
                        reader2.Close();
                    }
                }
            }
        }
Example #9
0
 public UpperFolderEnumerable(FileTreeItem source)
 {
     if (source == null)
     {
         throw new ArgumentNullException("source");
     }
     this.source = source;
 }
Example #10
0
 /// <summary>
 /// Binds the parent folder list.
 /// </summary>
 protected void BindParentFolderList()
 {
     this.Root.DataSource     = FileTreeItem.LoadAllFoldersDT(SiteId);
     this.Root.DataTextField  = _OutlineKey;
     this.Root.DataValueField = _PageIdKey;
     this.Root.DataBind();
     if (FolderId != -1)
     {
         this.Root.SelectedValue = FolderId.ToString();
     }
 }
Example #11
0
 private void FillNode(FileTree treeToAddFrom, FileTreeItem parent, TreeNode nodeToAddTo)
 {
     foreach (FileTreeItem aChild in treeToAddFrom.GetChildrenOf(parent))
     {
         TreeNode childNode = new TreeNode(aChild.GetItemName());
         if (treeToAddFrom.GetChildrenOf(aChild).Count() != 0)
         {
             FillNode(treeToAddFrom, aChild, childNode);
         }
         nodeToAddTo.Nodes.Add(childNode);
     }
 }
Example #12
0
        /// <summary>
        /// Binds the form.
        /// </summary>
        private void BindForm()
        {
            bool pageExists = false;

            if (PageId > 0)
            {
                using (IDataReader reader = FileTreeItem.GetItemById(PageId))
                {
                    if (reader.Read())
                    {
                        pageExists = true;

                        Name.Text            = reader["Name"].ToString();
                        IsDefault.IsSelected = (bool)reader["IsDefault"];
                        MasterPageText.Text  = (reader["MasterPage"] != DBNull.Value) && (reader["MasterPage"] != null) ? (string)reader["MasterPage"] : String.Empty;
                    }
                    reader.Close();
                }

                // Load meta attributes
                using (IDataReader reader = PageAttributes.GetByPageId(PageId))
                {
                    if (reader.Read())
                    {
                        txtTitle.Text       = (string)reader["Title"];
                        txtKeywords.Text    = (string)reader["MetaKeys"];
                        txtDescription.Text = (string)reader["MetaDescriptions"];
                    }
                    else
                    {
                        // add default site attributes
                        PageAttributes.Add(PageId, GlobalVariable.GetVariable(_GlobalVariableTitleKey, SiteId), GlobalVariable.GetVariable(_GlobalVariableMetaKeywordsKey, SiteId), GlobalVariable.GetVariable(_GlobalVariableMetaDescriptionKey, SiteId));
                        txtTitle.Text       = GlobalVariable.GetVariable(_GlobalVariableTitleKey, SiteId);
                        txtKeywords.Text    = GlobalVariable.GetVariable(_GlobalVariableMetaKeywordsKey, SiteId);
                        txtDescription.Text = GlobalVariable.GetVariable(_GlobalVariableMetaDescriptionKey, SiteId);
                    }
                    reader.Close();
                }
            }

            if (!pageExists)
            {
                // update UI for creating a new page
                BindParentFolderList();
                ParentFolderRow.Visible = true;
            }

            // since mater page is not used anywhere for now, hide it alway
            MasterPageRow.Visible = false;
        }
Example #13
0
    /// <summary>
    /// Gets the page URL.
    /// </summary>
    /// <param name="VersionId">The version id.</param>
    /// <returns></returns>
    protected string GetPageUrl(int VersionId)
    {
        string path = String.Empty;

        using (IDataReader reader = FileTreeItem.GetItemById(PageId))
        {
            if (reader.Read())
            {
                path = "~" + (string)reader["Outline"];
            }

            reader.Close();
        }
        path += "?VersionId=" + VersionId.ToString();
        return(path.Trim());
    }
Example #14
0
        /// <summary>
        /// Processes the delete command.
        /// </summary>
        /// <param name="items">The items.</param>
        void ProcessDeleteCommand(string[] items)
        {
            for (int i = 0; i < items.Length; i++)
            {
                string[] keys = EcfListView.GetPrimaryKeyIdStringItems(items[i]);
                if (keys != null)
                {
                    string id = keys[0];

                    // delete selected sites
                    Guid siteId = new Guid(id);

                    using (TransactionScope scope = new TransactionScope())
                    {
                        SiteDto dto = CMSContext.Current.GetSiteDto(siteId, true);
                        if (dto.Site.Rows.Count > 0)
                        {
                            // delete menus
                            MenuDto menuDto = MenuManager.GetMenuDto(siteId);
                            if (menuDto.Menu.Rows.Count > 0)
                            {
                                foreach (MenuDto.MenuRow menuRow in menuDto.Menu.Rows)
                                {
                                    menuRow.Delete();
                                }
                            }

                            if (menuDto.HasChanges())
                            {
                                MenuManager.SaveMenuDto(menuDto);
                            }

                            // delete folders and pages
                            int rootId = FileTreeItem.GetRoot(siteId);
                            FileTreeItem.DeleteFileItem(rootId);

                            //delete site
                            dto.Site[0].Delete();
                            CMSContext.Current.SaveSite(dto);
                        }

                        scope.Complete();
                    }
                }
            }
        }
Example #15
0
        public void ContentSystem_ImportExportSite()
        {
            Guid[] siteIDs;
            Guid   applicationId = AppContext.Current.ApplicationId;

            ImportExportHelper importExportHelper = new ImportExportHelper();

            //import data
            using (FileStream stream = File.Open("SiteExport-B2C.xml", FileMode.Open))
            {
                siteIDs = importExportHelper.ImportSite(stream, applicationId, Guid.Empty, false);
            }

            Guid siteId = siteIDs[0];

            FileStream fs = new FileStream("Content_SiteExport.xml", FileMode.Create, FileAccess.ReadWrite);

            importExportHelper.ExportSite(siteId, fs);

            SiteDto siteDto = CMSContext.Current.GetSiteDto(siteId);

            // delete menus
            MenuDto menuDto = MenuManager.GetMenuDto(siteId);

            if (menuDto.Menu.Rows.Count > 0)
            {
                foreach (MenuDto.MenuRow menuRow in menuDto.Menu.Rows)
                {
                    menuRow.Delete();
                }
            }

            if (menuDto.HasChanges())
            {
                MenuManager.SaveMenuDto(menuDto);
            }

            // delete folders and pages
            int rootId = FileTreeItem.GetRoot(siteId);

            FileTreeItem.DeleteFileItem(rootId);

            //delete site
            siteDto.Site[0].Delete();
            CMSContext.Current.SaveSite(siteDto);
        }
Example #16
0
        /// <summary>
        /// Creates a new page.
        /// </summary>
        private void CreatePage()
        {
            int    newId       = 0;
            string newPageName = MakePageName(Name.Text);

            //create new page
            string guid = Guid.NewGuid().ToString();

            newId = FileTreeItem.AddFileItem(guid, true, false, false, MasterPageText.Text, SiteId);
            FileTreeItem.MoveTo(newId, int.Parse(Root.SelectedValue));
            FileTreeItem.UpdateFileItem(newId, newPageName, true, true, false, MasterPageText.Text, SiteId);

            //append meta description and keywords
            PageAttributes.Add(newId,
                               String.IsNullOrEmpty(txtTitle.Text) ? GlobalVariable.GetVariable(_GlobalVariableTitleKey, SiteId) : txtTitle.Text,
                               String.IsNullOrEmpty(txtKeywords.Text) ? GlobalVariable.GetVariable(_GlobalVariableMetaKeywordsKey, SiteId) : txtKeywords.Text,
                               String.IsNullOrEmpty(txtDescription.Text) ? GlobalVariable.GetVariable(_GlobalVariableMetaDescriptionKey, SiteId) : txtDescription.Text);
        }
Example #17
0
    /// <summary>
    /// Binds the folders.
    /// </summary>
    private void BindFolders()
    {
        List <JsonTreeNode> nodes = new List <JsonTreeNode>();

        using (IDataReader reader = FileTreeItem.GetItemById(FileTreeItem.GetRoot(SiteId)))
        {
            if (reader.Read())
            {
                string       nodeId = MakeNodeId("folder-" + reader["PageId"].ToString());
                JsonTreeNode node   = JsonTreeNode.CreateNode(nodeId, reader["PageId"].ToString(), "/", "Content", "Folder-List", String.Format("folderid={0}&siteid={1}", reader["PageId"].ToString(), SiteId.ToString()), TreeListType.Folders.ToString());
                nodes.Add(node);
                BindFolders(node, (int)reader["PageId"]);
            }
            reader.Close();
        }

        WriteArray(nodes);
    }
Example #18
0
        /// <summary>
        /// Creates a new folder.
        /// </summary>
        private void CreateFolder()
        {
            //create temporary folder with unique name
            string guid  = Guid.NewGuid().ToString();
            int    newId = FileTreeItem.AddFileItem(guid, true, true, false, String.Empty, SiteId);

            FileTreeItem.MoveTo(newId, Int32.Parse(Root.SelectedValue));
            FileTreeItem.UpdateFileItem(newId, Name.Text, true, true, false, String.Empty, SiteId);

            // update folder access
            foreach (ListItem item in RolesList.Items)
            {
                if (item.Selected)
                {
                    FileTreeItem.AddPageAccess(item.Value, newId);
                }
            }
        }
Example #19
0
        /// <summary>
        /// Binds the folders.
        /// </summary>
        private void BindFolders()
        {
            //get all folders
            DataTable folders         = FileTreeItem.LoadAllFoldersDT(SiteId);
            Hashtable avalibleFolders = new Hashtable();

            foreach (DataRow folder in folders.Rows)
            {
                if ((int)folder["PageId"] != FolderId)
                {
                    avalibleFolders.Add(folder["PageId"], folder["Outline"]);
                }
            }

            //avalibleFolders.Add("", "[select folder]");
            ddlFolders.DataSource     = avalibleFolders;
            ddlFolders.DataTextField  = "Value";
            ddlFolders.DataValueField = "Key";
        }
Example #20
0
        /// <summary>
        /// Processes the delete command.
        /// </summary>
        /// <param name="items">The items.</param>
        void ProcessDeleteCommand(string[] items)
        {
            if (!ProfileContext.Current.CheckPermission("content:site:nav:mng:delete"))
            {
                throw new UnauthorizedAccessException("Current user does not have enough rights to access the requested operation.");
            }

            for (int i = 0; i < items.Length; i++)
            {
                string[] keys = EcfListView.GetPrimaryKeyIdStringItems(items[i]);
                if (keys != null)
                {
                    int folderId = Int32.Parse(keys[0]);

                    // delete selected sites
                    FileTreeItem.DeleteFileItem(folderId);
                }
            }
        }
Example #21
0
        /// <summary>
        /// Checks if entered name unique.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="System.Web.UI.WebControls.ServerValidateEventArgs"/> instance containing the event data.</param>
        public void NameCheck(object sender, ServerValidateEventArgs args)
        {
            bool pageExists = false;
            int  idToCheck  = 0;

            if (PageId > 0)
            {
                using (IDataReader reader = FileTreeItem.GetItemById(PageId))
                {
                    if (reader.Read())
                    {
                        pageExists = true;

                        // get parent id
                        using (IDataReader parentReader = FileTreeItem.LoadParent(PageId))
                        {
                            if (parentReader.Read())
                            {
                                idToCheck = (int)parentReader[_PageIdKey];
                            }
                            parentReader.Close();
                        }
                    }
                    reader.Close();
                }
            }

            if (!pageExists)
            {
                idToCheck = Int32.Parse(Root.SelectedValue);
            }

            // check if page exists
            string newPageName = MakePageName(Name.Text);

            if (PageExists(idToCheck, newPageName))
            {
                args.IsValid = false;
                return;
            }

            args.IsValid = true;
        }
Example #22
0
        /// <summary>
        /// Binds the tool bar.
        /// </summary>
        private void BindToolBar()
        {
            int folderId = 0;

            using (IDataReader reader = FileTreeItem.LoadParent(CMSContext.Current.PageId))
            {
                if (reader.Read())
                {
                    folderId = reader.GetInt32(0);
                }

                reader.Close();
            }

            if (CanEdit)
            {
                Tabs.Tabs[1].Visible = true;
            }
            else
            {
                Tabs.Tabs[1].Visible = false;
            }

            if (CanAdmin)
            {
                string adminUrl = GlobalVariable.GetVariable("cm_url", CMSContext.Current.SiteId);
                if (!String.IsNullOrEmpty(adminUrl))
                {
                    string url = String.Format("{0}/default.aspx?_a=Content&_v=Folder-List&folderid={1}&siteid={2}", adminUrl, folderId.ToString(), CMSContext.Current.SiteId);//, //Membership.GetUser(Page.User.Identity.Name).ProviderUserKey.ToString());
                    Tabs.Tabs[2].NavigateUrl = url;
                }
                else
                {
                    Tabs.Tabs[2].Visible = false;
                }
            }
            else
            {
                Tabs.Tabs[2].Visible = false;
            }
        }
Example #23
0
        /// <summary>
        /// Checks is folder with secified name exists.
        /// </summary>
        /// <param name="parentId">The parent id.</param>
        /// <param name="name">The name.</param>
        /// <returns></returns>
        private bool DirExists(int parentId, string name)
        {
            bool exists = false;

            string parentPath = string.Empty;
            Guid   siteId     = Guid.Empty;

            using (IDataReader reader = FileTreeItem.GetItemById(parentId))
            {
                if (reader.Read())
                {
                    parentPath = (string)reader[_OutlineKey] == "/" ? "" : (string)reader[_OutlineKey];
                    siteId     = (Guid)reader[_SiteIdKey];
                }
                reader.Close();
            }

            if (!parentPath.EndsWith("/"))
            {
                parentPath = parentPath + "/";
            }

            string childPath = parentPath + name + "/";

            using (IDataReader reader2 = FileTreeItem.GetItemByOutlineAll(childPath, siteId))
            {
                if (reader2.Read())
                {
                    if (PageId != (int)reader2[_PageIdKey])
                    {
                        exists = true;
                    }
                }

                reader2.Close();
            }

            return(exists);
        }
Example #24
0
    /// <summary>
    /// Binds the folders.
    /// </summary>
    /// <param name="root">The root.</param>
    /// <param name="folderId">The folder id.</param>
    private void BindFolders(JsonTreeNode root, int folderId)
    {
        using (IDataReader reader = FileTreeItem.LoadItemByFolderId(folderId))
        {
            while (reader.Read())
            {
                if ((bool)reader["IsFolder"])
                {
                    string       nodeId = MakeNodeId("folder-" + reader["PageId"].ToString());
                    JsonTreeNode node   = JsonTreeNode.CreateNode(nodeId, reader["PageId"].ToString(), (string)reader["Name"], "Content", "Folder-List", String.Format("folderid={0}&siteid={1}", reader["PageId"].ToString(), SiteId.ToString()), TreeListType.Folders.ToString());

                    if (root.children == null)
                    {
                        root.children = new List <JsonTreeNode>();
                    }

                    root.children.Add(node);
                    BindFolders(node, (int)reader["PageId"]);
                }
            }
            reader.Close();
        }
    }
Example #25
0
        /// <summary>
        /// Fills the context.
        /// </summary>
        /// <param name="absolutePath">The absolute path.</param>
        private void FillContext(string absolutePath)
        {
            CMSContext.Current.Outline = CMSContext.Current.GetQueryString(absolutePath);
            CMSContext.Current.Outline = Regex.Match(CMSContext.Current.Outline, "/[\\w]+(?<outline>.*)").Groups["outline"].Value;

            //GET PAGEID
            using (IDataReader reader = FileTreeItem.GetItemByOutlineAll(CMSContext.Current.Outline, CMSContext.Current.SiteId))
            {
                if (reader.Read())
                {
                    CMSContext.Current.PageId = (int)reader["PageId"];
                }

                reader.Close();
            }

            //SHOW  REQUESTED VERSION
            if (CMSContext.Current.QueryString["VersionId"] != null)
            {
                CMSContext.Current.VersionId = int.Parse(CMSContext.Current.QueryString["VersionId"].ToString());
            }
            //SHOW PUBLISHED VERSION
            else
            {
                //GET PUBLISHED VERSION
                int statusId = WorkflowStatus.GetLast(-1);
                using (IDataReader reader = PageVersion.GetByLangIdAndStatusId(CMSContext.Current.PageId, LanguageId, statusId))
                {
                    if (reader.Read())
                    {
                        CMSContext.Current.VersionId = (int)reader["VersionId"];
                    }

                    reader.Close();
                }
            }
        }
Example #26
0
        /// <summary>
        /// Saves the changes.
        /// </summary>
        /// <param name="context">The context.</param>
        public void SaveChanges(IDictionary context)
        {
            bool pageExists = false;

            if (PageId > 0)
            {
                using (IDataReader reader = FileTreeItem.GetItemById(PageId))
                {
                    if (reader.Read())
                    {
                        // edit folder
                        pageExists = true;

                        EditFolder(reader);
                    }
                    reader.Close();
                }
            }

            if (!pageExists)
            {
                CreateFolder();
            }
        }
Example #27
0
 void SelectItem(object obj)
 {
     SelectedItem = obj as FileTreeItem;
 }
Example #28
0
        /// <summary>
        /// Populates the languages recursive.
        /// </summary>
        /// <param name="folderId">The folder id.</param>
        private void PopulateLanguagesRecursive(int folderId)
        {
            Guid siteId = Guid.Empty;

            DataTable item = FileTreeItem.GetItemByIdDT(folderId);

            // We only care about pages
            if (item != null && item.Rows.Count > 0)
            {
                if ((bool)item.Rows[0]["IsFolder"])
                {
                    DataTable childItems = FileTreeItem.LoadItemByFolderIdDT(folderId);
                    foreach (DataRow childItem in childItems.Rows)
                    {
                        PopulateLanguagesRecursive((int)childItem["PageId"]);
                    }
                }
            }

            siteId = (Guid)item.Rows[0]["SiteId"];
            PageDocument pageDocument = null;

            //GET PUBLISHED VERSION
            int       statusId      = WorkflowStatus.GetLast();
            DataTable versionsTable = PageVersion.GetVersionByStatusIdDT(folderId, statusId);

            // Find page document
            int templateId = 0;
            int stateId    = 0;
            int langId     = 0;

            if (versionsTable != null && versionsTable.Rows.Count > 0)
            {
                foreach (DataRow versionRow in versionsTable.Rows)
                {
                    int versionId = 0;
                    int.TryParse(versionRow["VersionId"].ToString(), out versionId);
                    templateId = Int32.Parse(versionRow["templateid"].ToString());
                    PageDocument.PersistentDocumentStorage = new SqlPageDocumentStorageProvider();
                    pageDocument = PageDocument.Open(versionId, OpenMode.View, Guid.Empty);
                    stateId      = Int32.Parse(versionRow["stateid"].ToString());
                    langId       = Int32.Parse(versionRow["LangId"].ToString());

                    // Found a non empty page document
                    if (pageDocument != null)
                    {
                        break;
                    }
                }
            }

            // Get list of languages
            SiteDto siteDto = SiteManager.GetSite(siteId);

            foreach (SiteDto.SiteLanguageRow langRow in siteDto.SiteLanguage)
            {
                IDataReader reader = Language.GetLangByName(langRow.LanguageCode);
                if (reader.Read())
                {
                    int currentLangId = (int)reader["LangId"];

                    // We skip the default page document language
                    if (currentLangId == langId)
                    {
                        reader.Close();
                        continue;
                    }

                    // If we already have a specified language define, skip it
                    IDataReader versionReader = PageVersion.GetVersionByLangId(folderId, langId);
                    if (!versionReader.Read())
                    {
                        versionReader.Close();
                        continue;
                    }

                    int versionId = PageVersion.AddPageVersion(folderId, templateId, currentLangId, ProfileContext.Current.UserId, stateId, String.Empty);
                    PageDocument.PersistentDocumentStorage = new SqlPageDocumentStorageProvider();
                    PageDocument.PersistentDocumentStorage.Save(pageDocument, versionId, ProfileContext.Current.UserId);
                    versionReader.Close();
                }
                reader.Close();
            }
        }
Example #29
0
        public void EqualFileTreeItemsShouldBeEqual()
        {
            FileTreeItem expected = new FileTreeItem(_item.Parent, _item.Location);

            Assert.AreEqual(expected, _item);
        }
Example #30
0
        public void SetUp()
        {
            String root = Path.DirectorySeparatorChar + "theroot" + Path.DirectorySeparatorChar;

            _item = new FileTreeItem(new FileTreeItem(null, root), root + "thefile.cs");
        }