/// <summary>
        /// Save the Settings
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void UpdateClick([NotNull] object sender, [NotNull] EventArgs e)
        {
            var moduleController = new ModuleController();

            moduleController.UpdateModuleSetting(this.ModuleId, "forumboardid", this.BoardID.SelectedValue);

            moduleController.UpdateModuleSetting(this.ModuleId, "RemoveTabName", this.RemoveTabName.SelectedValue);
            moduleController.UpdateModuleSetting(
                this.ModuleId,
                "InheritDnnLanguage",
                this.InheritDnnLanguage.Checked.ToString());

            var boardSettings =
                new LoadBoardSettings(this.BoardID.SelectedValue.ToType <int>())
            {
                DNNPageTab  = this.TabId,
                DNNPortalId = this.PortalId,
                BaseUrlMask = $"http://{HttpContext.Current.Request.ServerVariables["SERVER_NAME"]}/"
            };

            // save the settings to the database
            boardSettings.SaveRegistry();

            // Import Users & Roles
            UserImporter.ImportUsers(
                this.BoardID.SelectedValue.ToType <int>(),
                this.PortalSettings.PortalId,
                out _);

            Config.Touch();

            this.Response.Redirect(this.navigationManager.NavigateURL(this.TabId), true);
        }
        /// <summary>
        /// The create board.
        /// </summary>
        /// <param name="importUsers">if set to <c>true</c> [import users].</param>
        /// <param name="BoardName">Name of the board.</param>
        /// <returns>
        /// Returns the Board ID of the new Board.
        /// </returns>
        private int CreateBoard(bool importUsers, string boardName)
        {
            // new admin
            var newAdmin = UserMembershipHelper.GetUser();

            // Create Board
            var newBoardId = this.CreateBoardDatabase(
                boardName,
                YafContext.Current.Get <MembershipProvider>().ApplicationName,
                YafContext.Current.Get <RoleProvider>().ApplicationName,
                "english.xml",
                newAdmin);

            if (newBoardId > 0 && global::YAF.Classes.Config.MultiBoardFolders)
            {
                // Successfully created the new board
                var boardFolder = this.Server.MapPath(
                    Path.Combine(global::YAF.Classes.Config.BoardRoot, "{0}/".FormatWith(newBoardId)));

                // Create New Folders.
                if (!Directory.Exists(Path.Combine(boardFolder, "Images")))
                {
                    // Create the Images Folders
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Images"));

                    // Create Sub Folders
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Images\\Avatars"));
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Images\\Categories"));
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Images\\Forums"));
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Images\\Emoticons"));
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Images\\Medals"));
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Images\\Ranks"));
                }

                if (!Directory.Exists(Path.Combine(boardFolder, "Themes")))
                {
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Themes"));

                    // Need to copy default theme to the Themes Folder
                }

                if (!Directory.Exists(Path.Combine(boardFolder, "Uploads")))
                {
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Uploads"));
                }
            }

            // Import Users & Roles
            if (importUsers)
            {
                string message;
                UserImporter.ImportUsers(
                    newBoardId,
                    this.PortalSettings.PortalId,
                    this.PortalSettings.GUID,
                    out message);
            }

            return(newBoardId);
        }
        /// <summary>
        /// Save the Settings
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void UpdateClick(object sender, EventArgs e)
        {
            var moduleController = new ModuleController();

            moduleController.UpdateModuleSetting(this.ModuleId, "forumboardid", this.BoardID.SelectedValue);

            moduleController.UpdateModuleSetting(this.ModuleId, "RemoveTabName", this.RemoveTabName.SelectedValue);
            moduleController.UpdateModuleSetting(
                this.ModuleId,
                "InheritDnnLanguage",
                this.InheritDnnLanguage.Checked.ToString());

            var boardSettings =
                new LoadBoardSettings(this.BoardID.SelectedValue.ToType <int>())
            {
                DNNPageTab  = this.TabId,
                DNNPortalId = this.PortalId,
                BaseUrlMask = $"http://{HttpContext.Current.Request.ServerVariables["SERVER_NAME"]}/"
            };

            // save the settings to the database
            boardSettings.SaveRegistry();

            // Import Users & Roles
            UserImporter.ImportUsers(
                this.BoardID.SelectedValue.ToType <int>(),
                this.PortalSettings.PortalId,
                out _);

            // Reload forum settings
            BoardContext.Current.BoardSettings = null;

            BuildLink.Redirect(ForumPages.Board);
        }
Beispiel #4
0
        /// <summary>
        /// Import/Update Users and Sync Roles
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void ImportClick(object sender, EventArgs e)
        {
            string info;

            UserImporter.ImportUsers(this.boardId, this.PortalSettings.PortalId, this.PortalSettings.GUID, out info);

            this.lInfo.Text = info;
        }
        /// <summary>
        /// The create board.
        /// </summary>
        /// <param name="importUsers">if set to <c>true</c> [import users].</param>
        /// <param name="boardName">Name of the board.</param>
        /// <returns>
        /// Returns the Board ID of the new Board.
        /// </returns>
        private int CreateBoard([NotNull] bool importUsers, [NotNull] string boardName)
        {
            CodeContracts.VerifyNotNull(boardName);

            // new admin
            var newAdmin = UserController.Instance.GetCurrentUserInfo().ToAspNetUsers();

            // Create Board
            var newBoardId = this.CreateBoardDatabase(
                boardName,
                "english.xml",
                newAdmin);

            if (newBoardId > 0 && Configuration.Config.MultiBoardFolders)
            {
                // Successfully created the new board
                var boardFolder = this.Server.MapPath(
                    Path.Combine(Configuration.Config.BoardRoot, $"{newBoardId}/"));

                // Create New Folders.
                if (!Directory.Exists(Path.Combine(boardFolder, "Images")))
                {
                    // Create the Images Folders
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Images"));

                    // Create Sub Folders
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Images", "Avatars"));
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Images", "Categories"));
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Images", "Forums"));
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Images", "Medals"));
                }

                if (!Directory.Exists(Path.Combine(boardFolder, "Uploads")))
                {
                    Directory.CreateDirectory(Path.Combine(boardFolder, "Uploads"));
                }
            }

            // Import Users & Roles
            if (importUsers)
            {
                UserImporter.ImportUsers(
                    newBoardId,
                    this.PortalSettings.PortalId,
                    out _);
            }

            return(newBoardId);
        }
Beispiel #6
0
        /// <summary>
        /// Gets the settings.
        /// </summary>
        private void GetSettings()
        {
            var settings = new DataSet();

            var filePath = $"{HttpRuntime.AppDomainAppPath}App_Data/YafImports.xml";

            try
            {
                settings.ReadXml(filePath);
            }
            catch (Exception)
            {
                var file = new FileStream(filePath, FileMode.Create);
                var sw   = new StreamWriter(file);

                sw.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
                sw.WriteLine("<YafImports>");
                sw.WriteLine("<Import PortalId=\"0\" BoardId=\"1\"/>");
                sw.WriteLine("</YafImports>");

                sw.Close();
                file.Close();

                settings.ReadXml(filePath);
            }

            var boards = BoardContext.Current != null
                ? BoardContext.Current.GetRepository <Board>().GetAll()
                : BoardContext.Current.GetRepository <Board>().GetAll().Select(b => new Board {
                ID = b.ID
            }).ToList();

            settings.Tables[0].Rows.Cast <DataRow>().ForEach(dataRow =>
            {
                var boardId  = dataRow["BoardId"].ToType <int>();
                var portalId = dataRow["PortalId"].ToType <int>();

                // check if board exist
                if (boards.Any(b => b.ID.Equals(boardId)))
                {
                    UserImporter.ImportUsers(boardId, portalId, out this.info);
                }
            });
        }
        /// <summary>
        /// Gets the settings.
        /// </summary>
        private void GetSettings()
        {
            var settings = new DataSet();

            var filePath = "{0}App_Data/YafImports.xml".FormatWith(HttpRuntime.AppDomainAppPath);

            try
            {
                settings.ReadXml(filePath);
            }
            catch (Exception)
            {
                var file = new FileStream(filePath, FileMode.Create);
                var sw   = new StreamWriter(file);

                sw.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
                sw.WriteLine("<YafImports>");
                sw.WriteLine("<Import PortalId=\"0\" BoardId=\"1\"/>");
                sw.WriteLine("</YafImports>");

                sw.Close();
                file.Close();

                settings.ReadXml(filePath);
            }

            var boards = YafContext.Current != null
                             ? YafContext.Current.GetRepository <Board>().ListTyped()
                             : Data.ListBoards();

            foreach (DataRow dataRow in settings.Tables[0].Rows)
            {
                var boardId  = dataRow["BoardId"].ToType <int>();
                var portalId = dataRow["PortalId"].ToType <int>();

                // check if board exist
                if (boards.Any(b => b.ID.Equals(boardId)))
                {
                    UserImporter.ImportUsers(boardId, portalId, out this.info);
                }
            }
        }
Beispiel #8
0
 public async Task ImportUsers([FromService] UserImporter importer)
 {
     await importer.ImportUsers();
 }