+1-888-365-2779
Try Now
More in this section

Forums / General Discussions / Import data in ForumPost

Import data in ForumPost

4 posts, 0 answered
  1. Tarun
    Tarun avatar
    81 posts
    Registered:
    14 Jan 2009
    05 Jun 2010
    Link to this post
    Hi ,

    I  am trying to import data in sitefinity table "sf_frm_Post". I am able to import data for new thread but how would I import data for child(reply) in the thread .

    If my query does not make sense please let me know ,I will try to describe it.


    Thanks,

  2. Ivan Dimitrov
    Ivan Dimitrov avatar
    16072 posts
    Registered:
    25 Nov 2016
    06 Jun 2010
    Link to this post
    Hi Tarun,

    I suggest that you should use the API to create the database objects. You have to create a post.



    Best wishes,
    Ivan Dimitrov
    the Telerik team

    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
  3. Tarun
    Tarun avatar
    81 posts
    Registered:
    14 Jan 2009
    09 Jun 2010
    Link to this post
    Hi Ivan,

    I know that we need to create a post for that but I am having a problem in ParentId and ThreadId . Below is my code Please take a look on that..


            DataView dv = SqlDataSource1.Select(DataSourceSelectArguments.Empty) as DataView;
            DataTable dt = dv.ToTable();


            OpenCon();
            //MembershipUserCollection users = Membership.GetAllUsers();
            if (dt.Rows.Count > 0)
            {
                int i = 0;
               // int threadNbr = -1;
                Telerik.Forums.ForumManager forumManager = new Telerik.Forums.ForumManager();
                IList listOfForums = forumManager.GetForums(false);

                foreach (DataRow dr in dt.Rows)
                {
                    i++;

                    cmd.CommandText = "SELECT username FROM [Import_Users] where UserId =" + dr["Owner"].ToString();
                    object obj = cmd.ExecuteScalar();
                    string username = obj.ToString();
                    //SqlDataSource1.SelectCommand = "SELECT * FROM [Import_Users] where UserId =" + dr["Owner"].ToString();

                    //DataView dv2 = SqlDataSource1.Select(DataSourceSelectArguments.Empty) as DataView;
                    //DataTable dt2 = dv2.ToTable();


                    try
                    {

                        // Parent thread
                        if (dr["Title"].ToString() != "" && dr["Title"].ToString() != null)
                        {

                            //foreach (MembershipUser user in users)
                            //{
                                //  ProfileCommon profile = (ProfileCommon)ProfileCommon.Create(user.UserName);

                              //  if (profile.UserID.ToString() == dr["Owner"].ToString())
                                //{

                                        Telerik.Forums.IForum firstForum = (Telerik.Forums.IForum)listOfForums[0];

                                        Telerik.Forums.IPost firstPost = forumManager.CreatePost();

                                        firstPost.Title = dr["Title"].ToString();

                                        firstPost.Content = dr["Content"].ToString();

                                        if (dr["DateCreated"].ToString() != "" && dr["DateCreated"].ToString() != null)
                                            firstPost.DateCreated = DateTime.Parse(dr["DateCreated"].ToString());


                                        firstPost.ForumID = firstForum;

                                        firstPost.Owner = username;//dt2.Rows[0][0].ToString();

                                        forumManager.SavePost(firstPost);
                                    

                              //  }

                            //}
                        }


                        //child thread
                        else
                        {

                            Telerik.Forums.IForum firstForum = (Telerik.Forums.IForum)listOfForums[0];

                            IList listOfThreads = forumManager.GetForumThreads(firstForum, false);

                            //foreach (MembershipUser user in users)
                            //{
                                //  ProfileCommon profile = (ProfileCommon)ProfileCommon.Create(user.UserName);

                                //if (profile.UserID.ToString() == dr["Owner"].ToString())
                                //{

                                        Telerik.Forums.IPost rootPost = (Telerik.Forums.IPost)listOfThreads[0];

                                        Telerik.Forums.IPost firstPost = forumManager.CreatePost(rootPost);

                                        firstPost.Status = PostStatus.PostHidden;

                                        firstPost.Title = dr["Title"].ToString();
                                        
                                        firstPost.Content = dr["Content"].ToString();

                                        firstPost.Owner = username;//dt2.Rows[0][0].ToString();

                                        if (dr["DateCreated"].ToString() != "" && dr["DateCreated"].ToString() != null)
                                            firstPost.DateCreated = DateTime.Parse(dr["DateCreated"].ToString());


                                        firstPost.ForumID = firstForum;

                                        firstPost.Thread = rootPost;

                                        forumManager.SavePost(firstPost);

                                }


                            //}

                        //}
                    }




                    catch (Exception ex)
                    {
          }
    }

    I am attaching the table to be imported . Please take a look on that and let me know where I am wrong.

    Thanks,
    Tarun


  4. Tarun
    Tarun avatar
    81 posts
    Registered:
    14 Jan 2009
    09 Jun 2010
    Link to this post
    Hi Ivan,

    I made an attempt again with another way and I think this time data is imported correct.

    I am pasting the code for reference.


        protected void btnImportFrmPosts_Click(object sender, EventArgs e)
        {
            DataView dv = SqlDataSource1.Select(DataSourceSelectArguments.Empty) as DataView;
            DataTable dt = dv.ToTable();


            OpenCon();
            if (dt.Rows.Count > 0)
            {
                int i = 0;
                Telerik.Forums.ForumManager forumManager = new Telerik.Forums.ForumManager();
                IList listOfForums = forumManager.GetForums(false);
                Telerik.Forums.IPost parentPost = null;
                foreach (DataRow dr in dt.Rows)
                {
                    i++;

                    cmd.CommandText = "SELECT username FROM [Import_Users] where UserId =" + dr["Owner"].ToString();
                    object obj = cmd.ExecuteScalar();
                    string username = obj.ToString();


                    try
                    {
                        Telerik.Forums.IForum firstForum = (Telerik.Forums.IForum)listOfForums[0];
                        Telerik.Forums.IPost firstPost = forumManager.CreatePost(); 

                        // Parent thread
                        if (dr["Title"].ToString() != "" && dr["Title"].ToString() != null)
                        {


                                       
                                        firstPost.Title = dr["Title"].ToString();

                                        firstPost.Content = dr["Content"].ToString();

                                        if (dr["DateCreated"].ToString() != "" && dr["DateCreated"].ToString() != null)
                                            firstPost.DateCreated = DateTime.Parse(dr["DateCreated"].ToString());


                                        firstPost.ForumID = firstForum;

                                        firstPost.Owner = username;//dt2.Rows[0][0].ToString();

                                        forumManager.SavePost(firstPost);
                                        parentPost = firstPost;

                                        //IList recentPost = forumManager.GetRecentPosts(0, 1);
                                    
                        }


                        //child thread
                        else
                        {

             
                                        firstPost.Status = PostStatus.PostHidden;

                                        firstPost.Title = dr["Title"].ToString();
                                        
                                        firstPost.Content = dr["Content"].ToString();

                                        firstPost.Owner = username;//dt2.Rows[0][0].ToString();

                                        if (dr["DateCreated"].ToString() != "" && dr["DateCreated"].ToString() != null)
                                            firstPost.DateCreated = DateTime.Parse(dr["DateCreated"].ToString());


                                        firstPost.ForumID = firstForum;

                                        firstPost.Thread = parentPost;
                                        firstPost.Parent = parentPost;

                                        forumManager.SavePost(firstPost);

                                }
                    }




                    catch (Exception ex)
                    {
    throw ex
                        
                    }
                }
            }

    Thanks,
    Tarun
Register for webinar
4 posts, 0 answered