public ActionResult DeleteConfirmed(int id)
        {
            User_Folder user_folder = db.User_Folder.Find(id);

            db.User_Folder.Remove(user_folder);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        //
        // GET: /Folders/Details/5

        public ActionResult Details(int id = 0)
        {
            User_Folder user_folder = db.User_Folder.Find(id);

            if (user_folder == null)
            {
                return(HttpNotFound());
            }
            return(View(user_folder));
        }
 public ActionResult Edit(User_Folder user_folder)
 {
     if (ModelState.IsValid)
     {
         db.Entry(user_folder).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(user_folder));
 }
        public ActionResult Create(User_Folder user_folder)
        {
            if (ModelState.IsValid)
            {
                db.User_Folder.Add(user_folder);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(user_folder));
        }
        private void refresh_user_folders(User_Object User, Custom_Tracer Tracer )
        {
            DataSet thisSet = SobekCM_Database.Get_Folder_Search_Information(User.UserID, Tracer);

            // Add the current folder names
            Dictionary<int, User_Folder> folderNodes = new Dictionary<int, User_Folder>();
            List<User_Folder> parentNodes = new List<User_Folder>();
            foreach (DataRow folderRow in thisSet.Tables[0].Rows)
            {
                string folder_name = folderRow["FolderName"].ToString();
                int folderid = Convert.ToInt32(folderRow["UserFolderID"]);
                int parentid = Convert.ToInt32(folderRow["ParentFolderID"]);
                bool isPublic = Convert.ToBoolean(folderRow["isPublic"]);

                User_Folder newFolderNode = new User_Folder(folder_name, folderid) {IsPublic = isPublic};
                if (parentid == -1)
                    parentNodes.Add(newFolderNode);
                folderNodes.Add(folderid, newFolderNode);
            }
            foreach (DataRow folderRow in thisSet.Tables[0].Rows)
            {
                int folderid = Convert.ToInt32(folderRow["UserFolderID"]);
                int parentid = Convert.ToInt32(folderRow["ParentFolderID"]);
                if (parentid > 0)
                {
                    folderNodes[parentid].Add_Child_Folder(folderNodes[folderid]);
                }
            }
            RequestSpecificValues.Current_User.Clear_Folders();
            foreach (User_Folder root_folder in parentNodes)
                RequestSpecificValues.Current_User.Add_Folder(root_folder);
        }
        private void add_children_nodes(TreeNode ParentNode, User_Folder ThisFolder, string SelectedFolder, string RedirectURL, List<TreeNode> SelectedNodes )
        {
            if (ThisFolder.Child_Count == 0)
                return;

            foreach (User_Folder childFolders in ThisFolder.Children)
            {
                TreeNode folderNode = new TreeNode
                                          { Text ="&nbsp; <a href=\"" +RedirectURL.Replace("XXXXXXXXXXXXXXXXXX",childFolders.Folder_Name_Encoded) + "\">" +childFolders.Folder_Name + "</a>" };
                if (childFolders.Folder_Name == SelectedFolder)
                {
                    SelectedNodes.Add(folderNode);
                    if (childFolders.IsPublic)
                    {
                        folderNode.ImageUrl = Static_Resources_Gateway.Open_Folder_Public_Jpg;
                        folderNode.ImageToolTip = "Public folder";
                    }
                    else
                    {
                        folderNode.ImageUrl = Static_Resources_Gateway.Open_Folder_Jpg;
                    }

                    folderNode.Text = "&nbsp; <span class=\"Selected_TreeNode_Text\">" + childFolders.Folder_Name + "</span>";
                    folderNode.SelectAction = TreeNodeSelectAction.None;
                }
                else
                {
                    if (childFolders.IsPublic)
                    {
                        folderNode.ImageUrl = Static_Resources_Gateway.Closed_Folder_Public_Jpg;
                        folderNode.ImageToolTip = "Public folder";
                    }
                    else
                    {
                        folderNode.ImageUrl = Static_Resources_Gateway.Closed_Folder_Jpg;
                    }
                    folderNode.Text = "&nbsp; <a href=\"" + RedirectURL.Replace("XXXXXXXXXXXXXXXXXX", childFolders.Folder_Name_Encoded) + "\">" + childFolders.Folder_Name + "</a>";
                }
                ParentNode.ChildNodes.Add(folderNode);

                // Add all the children nodes as well
                add_children_nodes(folderNode, childFolders, properFolderName, RedirectURL, SelectedNodes);
            }
        }
 /// <summary> Adds a folder name to the list of folders associated with this user </summary>
 /// <param name="Folder_Name"> Name of the folder to add </param>
 /// <param name="Folder_ID"> Primary key for this folder </param>
 public void Add_Folder(string Folder_Name, int Folder_ID )
 {
     folders[Folder_Name] = new User_Folder(Folder_Name, Folder_ID);
 }
 /// <summary> Adds a folder to the list of folders associated with this user </summary>
 /// <param name="Folder"> Built folder object </param>
 public void Add_Folder(User_Folder Folder)
 {
     folders[Folder.Folder_Name] = Folder;
 }
 private User_Folder recurse_to_get_folder(User_Folder ParentFolder, string FolderName)
 {
     if ( ParentFolder.Folder_Name.ToLower() == FolderName )
         return ParentFolder;
     if (ParentFolder.Children != null)
         return ParentFolder.Children.Select(ChildFolder => recurse_to_get_folder(ChildFolder, FolderName)).FirstOrDefault(ReturnValue => ReturnValue != null);
     return null;
 }
 private void recurse_through_children(User_Folder ParentFolder, SortedList<string, User_Folder> FolderBuilder)
 {
     if(ParentFolder.Child_Count>0)
     {
         foreach (User_Folder thisFolder in ParentFolder.Children)
        {
         FolderBuilder.Add(thisFolder.Folder_Name, thisFolder);
         recurse_through_children(thisFolder, FolderBuilder);
         }
     }
 }
        private static User_Object build_user_object_from_dataset(DataSet ResultSet)
        {
            User_Object user = new User_Object();

            DataRow userRow = ResultSet.Tables[0].Rows[0];
            user.ShibbID = userRow["ShibbID"].ToString();
            user.UserID = Convert.ToInt32(userRow["UserID"]);
            user.UserName = userRow["username"].ToString();
            user.Email = userRow["EmailAddress"].ToString();
            user.Given_Name = userRow["FirstName"].ToString();
            user.Family_Name = userRow["LastName"].ToString();
            user.Send_Email_On_Submission = Convert.ToBoolean(userRow["SendEmailOnSubmission"]);
            user.Can_Submit = Convert.ToBoolean(userRow["Can_Submit_Items"]);
            user.Is_Temporary_Password = Convert.ToBoolean(userRow["isTemporary_Password"]);
            user.Nickname = userRow["Nickname"].ToString();
            user.Organization = userRow["Organization"].ToString();
            user.Organization_Code = userRow["OrganizationCode"].ToString();
            user.Department = userRow["Department"].ToString();
            user.College = userRow["College"].ToString();
            user.Unit = userRow["Unit"].ToString();
            user.Default_Rights = userRow["Rights"].ToString();
            user.Preferred_Language = userRow["Language"].ToString();
            user.Is_Internal_User = Convert.ToBoolean(userRow["Internal_User"]);
            user.Edit_Template_Code_Simple = userRow["EditTemplate"].ToString();
            user.Edit_Template_Code_Complex = userRow["EditTemplateMarc"].ToString();
            user.Can_Delete_All = Convert.ToBoolean(userRow["Can_Delete_All_Items"]);
            user.Is_System_Admin = Convert.ToBoolean(userRow["IsSystemAdmin"]);
            user.Is_Portal_Admin = Convert.ToBoolean(userRow["IsPortalAdmin"]);
            user.Is_Host_Admin = Convert.ToBoolean(userRow["IsHostAdmin"]);
            user.Include_Tracking_In_Standard_Forms = Convert.ToBoolean(userRow["Include_Tracking_Standard_Forms"]);
            user.Receive_Stats_Emails = Convert.ToBoolean(userRow["Receive_Stats_Emails"]);
            user.Has_Item_Stats = Convert.ToBoolean(userRow["Has_Item_Stats"]);
            user.LoggedOn = true;
            user.Internal_Notes = userRow["InternalNotes"].ToString();
            user.Processing_Technician = Convert.ToBoolean(userRow["ProcessingTechnician"]);
            user.Scanning_Technician = Convert.ToBoolean(userRow["ScanningTechnician"]);

            if (Convert.ToInt32(userRow["descriptions"]) > 0)
                user.Has_Descriptive_Tags = true;

            foreach (DataRow thisRow in ResultSet.Tables[1].Rows)
            {
                user.Add_Template(thisRow["TemplateCode"].ToString(), Convert.ToBoolean(thisRow["GroupDefined"].ToString()));
            }

            foreach (DataRow thisRow in ResultSet.Tables[2].Rows)
            {
                user.Add_Default_Metadata_Set(thisRow["MetadataCode"].ToString(), Convert.ToBoolean(thisRow["GroupDefined"].ToString()));
            }

            user.Items_Submitted_Count = ResultSet.Tables[3].Rows.Count;
            foreach (DataRow thisRow in ResultSet.Tables[3].Rows)
            {
                if (!user.BibIDs.Contains(thisRow["BibID"].ToString().ToUpper()))
                    user.Add_BibID(thisRow["BibID"].ToString().ToUpper());
            }

            // Add links to regular expressions
            foreach (DataRow thisRow in ResultSet.Tables[4].Rows)
            {
                user.Add_Editable_Regular_Expression(thisRow["EditableRegex"].ToString());
            }

            // Add links to aggregationPermissions
            foreach (DataRow thisRow in ResultSet.Tables[5].Rows)
            {

                user.Add_Aggregation(thisRow["Code"].ToString(), thisRow["Name"].ToString(), Convert.ToBoolean(thisRow["CanSelect"]), Convert.ToBoolean(thisRow["CanEditMetadata"]), Convert.ToBoolean(thisRow["CanEditBehaviors"]), Convert.ToBoolean(thisRow["CanPerformQc"]), Convert.ToBoolean(thisRow["CanUploadFiles"]), Convert.ToBoolean(thisRow["CanChangeVisibility"]), Convert.ToBoolean(thisRow["CanDelete"]), Convert.ToBoolean(thisRow["IsCollectionManager"]), Convert.ToBoolean(thisRow["OnHomePage"]), Convert.ToBoolean(thisRow["IsAggregationAdmin"]), Convert.ToBoolean(thisRow["GroupDefined"]));

            }

            // Add the current folder names
            Dictionary<int, User_Folder> folderNodes = new Dictionary<int, User_Folder>();
            List<User_Folder> parentNodes = new List<User_Folder>();
            foreach (DataRow folderRow in ResultSet.Tables[6].Rows)
            {
                string folderName = folderRow["FolderName"].ToString();
                int folderid = Convert.ToInt32(folderRow["UserFolderID"]);
                int parentid = Convert.ToInt32(folderRow["ParentFolderID"]);
                bool isPublic = Convert.ToBoolean(folderRow["isPublic"]);

                User_Folder newFolderNode = new User_Folder(folderName, folderid) { IsPublic = isPublic };
                if (parentid == -1)
                    parentNodes.Add(newFolderNode);
                folderNodes.Add(folderid, newFolderNode);
            }
            foreach (DataRow folderRow in ResultSet.Tables[6].Rows)
            {
                int folderid = Convert.ToInt32(folderRow["UserFolderID"]);
                int parentid = Convert.ToInt32(folderRow["ParentFolderID"]);
                if (parentid > 0)
                {
                    folderNodes[parentid].Add_Child_Folder(folderNodes[folderid]);
                }
            }
            foreach (User_Folder rootFolder in parentNodes)
                user.Add_Folder(rootFolder);

            // Get the list of BibID/VID associated with this
            foreach (DataRow itemRow in ResultSet.Tables[7].Rows)
            {
                user.Add_Bookshelf_Item(itemRow["BibID"].ToString(), itemRow["VID"].ToString());
            }

            // Add the user groups to which this user is a member
            foreach (DataRow groupRow in ResultSet.Tables[8].Rows)
            {
                user.Add_User_Group(groupRow[0].ToString());
            }

            // Get all the user settings
            foreach (DataRow settingRow in ResultSet.Tables[9].Rows)
            {
                user.Add_Setting(settingRow["Setting_Key"].ToString(), settingRow["Setting_Value"].ToString(), false);
            }

            return user;
        }