Imports System
Imports System.Data
Imports System.Data.SqlClient

Partial Class ArticleContentSubmission
    Inherits System.Web.UI.Page
    Dim tagkid As String
    Dim flag As Boolean = False
    Dim articleKID As String
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Session("AdminID") Is Nothing Then
            Response.Redirect("AdminLogin.aspx?sesn=expire")
            Exit Sub
        End If
        If Not IsPostBack Then

            If Session("AdminID") = Nothing Then
                Response.Redirect("AdminLogin.aspx")
            End If

            Fill_Combo("Select Category_Kid,Category_Name from Category_Master where Category_IsDeleted='0' and Category_ParentId='Root Category' Order by Category_Name", ddlCategory)
            ' ''ddlCategory.DataTextField = "Category_Name"
            ' ''ddlCategory.DataValueField = "Category_Kid"
            btnDelete.Attributes.Add("onclick", "return confirm('Are you Sure! Want to Delete ? ');")

            If Request.QueryString("ArticleKid") <> Nothing Then
                ViewState("articleKID") = DecodeURL(RemoveLiterals(Request.QueryString("ArticleKid")))
                FillData(ViewState("articleKID"))
                btnUpdate.Attributes.Add("onclick", "return CheckSaveValidation();")
                gvAdmin.Visible = False
                'BtnPageLoad(True)
                'fillgrid()
                'ActiveControls(True)
                'btnUpdate.Visible = True
                'btnCancel.Visible = True
                'btnDelete.Visible = False

                Exit Sub

            ElseIf Request.QueryString("MetaKid") <> Nothing Then
                ViewState("articleKID") = DecodeURL(RemoveLiterals(Request.QueryString("MetaKid")))
                FillData(ViewState("articleKID"))
                btnUpdate.Attributes.Add("onclick", "return CheckSaveValidation();")
                gvAdmin.Visible = False
                Exit Sub
            ElseIf Request.QueryString("SelfKid") <> Nothing Then
                If (Request.QueryString("SelfKid") <> "Clear") Then
                    ViewState("articleKID") = DecodeURL(RemoveLiterals(Request.QueryString("SelfKid")))
                    FillData(ViewState("articleKID"))
                    BtnPageLoad(False)
                Else
                    BtnPageLoad(True)
                    TestJJRichTextBox1.Text = ""
                End If
                'BtnPageLoad(True)
                'ViewState("articleKID") = DecodeURL(RemoveLiterals(Request.QueryString("SelfKid")))
                'FillData(ViewState("articleKID"))
                'gvAdmin.Visible = False
                btnSave.Attributes.Add("onclick", "return CheckSaveValidation();")
                btnUpdate.Attributes.Add("onclick", "return CheckSaveValidation();")
                fillgrid("")
                Exit Sub
            End If

            btnSave.Attributes.Add("onclick", "return CheckSaveValidation();")
            btnUpdate.Attributes.Add("onclick", "return CheckSaveValidation();")
            fillgrid("")
            'ClearFields()
            BtnPageLoad(True)

            'ActiveControls(False)
            gvAdmin.SelectedIndex = -1

            'Call AddClick(Me, btnAdd, btnSave, btnUpdate, btnDelete, btnCancel, btn)
        End If

    End Sub

    Public Sub BtnPageLoad(ByVal action As Boolean)
        btnSave.Visible = action
        btnUpdate.Visible = IIf(action, False, True)
        btnDelete.Visible = IIf(action, False, True)
        btnCancel.Visible = IIf(action, False, True)
    End Sub
    Protected Sub ClearFields()
        'TestJJRichTextBox1.Text = ""

        'CType(CType(Me.FindControl("TestJJRichTextBox1"), UserControl).FindControl("btnClear"), Button).Click(Nothing, Nothing)

        'CType(TestJJRichTextBox1.FindControl("btnClear"), Button).send()

        'RaiseEvent  btnCancel.Click(nothing,nothing)
        Response.Redirect("ArticleContentSubmission.aspx?SelfKid=Clear")
        JavaScriptFunction(Me, "btnClearClick('" & CType(TestJJRichTextBox1.FindControl("frmTxtArea"), HtmlGenericControl).ClientID.ToString & "')", "functClear")
        txtKeywords.Text = ""
        txtTitle.Text = ""

    End Sub


    Public Sub JavaScriptFunction(ByRef aspxPage As System.Web.UI.Page, ByVal strFunctionName As String, ByVal strKey As String)
        Try

            If (Not aspxPage.IsStartupScriptRegistered(strKey)) Then
                ScriptManager.RegisterStartupScript(aspxPage, aspxPage.GetType, "StrKeyVal", strFunctionName, True)
            End If
            Threading.Thread.Sleep(2000)
        Catch ex As Exception

        End Try
    End Sub

    Protected Sub ActiveControls(ByVal Active As Boolean)
        'txtContent.Enabled = Active
        'txtKeywords.Enabled = Active
        'txtTitle.Enabled = Active
        'ddlCategory.Enabled = Active
        'CType(TestJJRichTextBox1.FindControl("tblMenu"),HtmlTable).Style.Add("")

    End Sub

    Protected Sub fillgrid(ByVal catID As String)
        Try
            Dim dt As DataTable
            If catID = "" Then
                dt = ReturnDataTable("SELECT Article_Master.Article_Kid, Article_Master.Article_Title, Article_Master.Article_Keyword, Category_Master.Category_Name, Article_Master.Article_Status FROM         Article_Master INNER JOIN      Category_Master ON Article_Master.Article_CategoryId = Category_Master.Category_Kid WHERE    Article_Master.Article_IsDeleted = '0' ORDER BY Article_Master.Article_RegDate desc")
            Else
                dt = ReturnDataTable("SELECT Article_Master.Article_Kid, Article_Master.Article_Title, Article_Master.Article_Keyword, Category_Master.Category_Name, Article_Master.Article_Status FROM         Article_Master INNER JOIN      Category_Master ON Article_Master.Article_CategoryId = Category_Master.Category_Kid WHERE    Article_Master.Article_IsDeleted = '0' and Article_Master.Article_CategoryID = '" & RemoveLiterals(catID.ToString) & "' ORDER BY Article_Master.Article_RegDate desc")
            End If
            gvAdmin.Columns(3).Visible = True
            gvAdmin.DataSource = dt
            gvAdmin.DataBind()
            gvAdmin.Columns(3).Visible = False
            gvAdmin.SelectedIndex = -1
        Catch ex As Exception
        End Try
    End Sub

    Protected Sub gvAdmin_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gvAdmin.PageIndexChanging
        gvAdmin.PageIndex = e.NewPageIndex
        fillgrid("")
        gvAdmin.SelectedIndex = -1
        ClearFields()
        ddlCategory.SelectedIndex = -1
        ActiveControls(False)

    End Sub


    Protected Sub btnAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        ActiveControls(True)
        ClearFields()
        'Call AddClickVisible(Me, btnAdd, btnSave, btnUpdate, btnDelete, btnCancel)

    End Sub

    Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSave.Click
        Try

            If txtTitle.Text = "" Or hfContent.Value = "" Or txtKeywords.Text = "" Then
                CreateMessageAlert(Me, "Please Enter Details", "StrKeyVal")             'Display the Message
                Exit Sub
            End If

            If ddlCategory.SelectedItem.Text = "Select" Then
                CreateMessageAlert(Me, "Please Select Proper Category", "StrKeyVal")             'Display the Message
                Exit Sub
            End If

            txtKid.Text = NewPrimaryKey(Me)
            InsertTagKeyword("Insert")   'Insert the keywords in TagMaster
            If flag = False Then
                CreateMessageAlert(Me, "Please Enter Proper Keywords...", "StrKeyVal")             'Display the Message
                Exit Sub
            End If
            UpdateData("Insert")         'Inserts the Record in ArticleMaster
            BtnPageLoad(True)
            'Clear the TextFields
            CreateMessageAlert(Me, "Record Saved Successfully...", "StrKeyVal")             'Display the Message
            fillgrid("")
            ddlCategory.SelectedIndex = -1
            'Call SaveClickVisible(Me, btnAdd, btnSave, btnUpdate, btnDelete, btnCancel)
            ActiveControls(False)
            BtnPageLoad(True)
            ClearFields()
        Catch ex As Exception

        End Try
    End Sub

    Protected Sub btnUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs)
       
        If txtTitle.Text = "" Or hfContent.Value = "" Or txtKeywords.Text = "" Then
            CreateMessageAlert(Me, "Please Enter Details", "StrKeyVal")             'Display the Message
            Exit Sub
        End If

        If ddlCategory.SelectedItem.Text = "Select" Then
            CreateMessageAlert(Me, "Please Select Proper Category", "StrKeyVal")             'Display the Message
            Exit Sub
        End If

        If ViewState("articleKID") <> "" Then
            txtKid.Text = ViewState("articleKID")
        Else
            txtKid.Text = gvAdmin.SelectedDataKey.Value
        End If

        InsertTagKeyword("Insert")    'Insert the keywords in TagMaster
        If flag = False Then
            CreateMessageAlert(Me, "Please Enter Proper Keywords...", "StrKeyVal")             'Display the Message
            Exit Sub
        End If
        UpdateData("Update")          'Update the Record in ArticleMaster
        BtnPageLoad(True)
        'Clear the TextFields
        CreateMessageAlert(Me, "Record Update Successfully...", "StrKeyVal")             'Display the Message
        fillgrid("")
        ddlCategory.SelectedIndex = -1

        BtnPageLoad(True)
        'Call EditClickVisible(Me, btnAdd, btnSave, btnUpdate, btnDelete, btnCancel)
        ActiveControls(False)

        If Request.QueryString("ArticleKid") <> Nothing Then
            Response.Redirect("ArticleContentApproval.aspx")
        ElseIf Request.QueryString("MetaKid") <> Nothing Then
            Response.Redirect("ArticleContentMetaEntry.aspx")
        Else
            ClearFields()
        End If
    End Sub

    Protected Sub btnDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        If ViewState("articleKID") <> "" Then
            txtKid.Text = ViewState("articleKID")
        Else
            txtKid.Text = gvAdmin.SelectedDataKey.Value
        End If
        InsertTagKeyword("Del")
        UpdateData("Delete")     'Delete the Record from ArticleMaster
        BtnPageLoad(True)
        'ClearFields()            'Clear the TextFields
        'CreateMessageAlert(Me, "Record Deleted Successfully...", "StrKeyVal")             'Display the Message
        fillgrid("")
        ddlCategory.SelectedIndex = -1
        'Call DeleteClickVisible(Me, btnAdd, btnSave, btnUpdate, btnDelete, btnCancel)
        ActiveControls(False)
        BtnPageLoad(True)

        If Request.QueryString("ArticleKid") <> Nothing Then
            Response.Redirect("ArticleContentApproval.aspx")
        ElseIf Request.QueryString("MetaKid") <> Nothing Then
            Response.Redirect("ArticleContentMetaEntry.aspx")
        Else
            ClearFields()
        End If
    End Sub

    Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancel.Click
        If Request.QueryString("ArticleKid") <> Nothing Then
            Response.Redirect("ArticleContentApproval.aspx")
        End If

        fillgrid("")
        gvAdmin.SelectedIndex = -1
        ddlCategory.SelectedIndex = -1
        ActiveControls(False)
        BtnPageLoad(True)
        'ClearFields()
        'Call CancelClickVisible(Me, btnAdd, btnSave, btnUpdate, btnDelete, btnCancel)
        If Request.QueryString("ArticleKid") <> Nothing Then
            Response.Redirect("ArticleContentApproval.aspx")
        ElseIf Request.QueryString("MetaKid") <> Nothing Then
            Response.Redirect("ArticleContentMetaEntry.aspx")
        Else
            ClearFields()
        End If
    End Sub
    Private Sub UpdateData(ByVal strMode As String)
        Try

            Dim cmd As New Data.SqlClient.SqlCommand()
            Dim sqlcoll As Data.SqlClient.SqlParameterCollection = cmd.Parameters
            sqlcoll.Clear()
            sqlcoll.Add("@Article_Kid", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(txtKid.Text)
            sqlcoll.Add("@Article_Title", Data.SqlDbType.NVarChar, 250).Value = Trim(txtTitle.Text)
            sqlcoll.Add("@Article_Keyword", Data.SqlDbType.NVarChar, 200).Value = Trim(tagkid.Remove(0, 1))
            sqlcoll.Add("@Article_CategoryId", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(ddlCategory.SelectedItem.Value)
            sqlcoll.Add("@Article_Body", Data.SqlDbType.NVarChar).Value = Trim(hfContent.Value.ToString)
            sqlcoll.Add("@Article_RegDate", Data.SqlDbType.DateTime).Value = DateTime.Now
            sqlcoll.Add("@Article_Status", Data.SqlDbType.NVarChar, 50).Value = "Pending"
            sqlcoll.Add("@Article_SubmittedBy", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(Session("g_User"))
            sqlcoll.Add("@FormName", Data.SqlDbType.NVarChar, 50).Value = Me.Title.ToString
            sqlcoll.Add("@Mode", Data.SqlDbType.Char, 10).Value = strMode.Trim
            sqlcoll.Add("@InsertFrom", Data.SqlDbType.NVarChar, 50).Value = "ArticleSubmission"
            ExecQuery("ArticleContent_Proc", sqlcoll)

        Catch ex As Exception

        End Try

    End Sub
    Protected Sub gvAdmin_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvAdmin.RowDataBound
        Dim dk As String
        Try
            If e.Row.RowType = DataControlRowType.DataRow Then
                dk = e.Row.Cells(3).Text
                Dim arr As String() = Split(dk, "-")
                Dim i As Integer
                Dim catnm As String = ""
                For i = 0 To arr.Length - 1
                    catnm += ReturnValue("select Tag_Name from Tag_Master where Tag_Kid='" & RemoveLiterals(arr(i)) & "' and Tag_IsDeleted='0'") & ", "
                Next
                e.Row.Cells(3).Text = catnm.Remove(catnm.Length - 2, 2)
            End If
        Catch ex As Exception

        End Try
    End Sub

    Protected Sub gvAdmin_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvAdmin.SelectedIndexChanged
        'FillData(gvAdmin.SelectedDataKey.Value)
        Response.Redirect("ArticleContentSubmission.aspx?SelfKid=" & EncodeURL(RemoveLiterals(gvAdmin.SelectedDataKey.Value.ToString)) & "")

    End Sub

    Protected Sub FillData(ByVal keyval As String)
        Try
            ActiveControls(True)
            Dim str As String = "SELECT  Article_Title, Article_Keyword,Article_Body, Article_CategoryId   FROM Article_Master WHERE   Article_IsDeleted = '0'  AND Article_Kid = '" & RemoveLiterals(keyval) & "'"
            Dim dt As DataTable = ReturnDataTable(str)

            Dim tagname As String = dt.Rows(0).Item("Article_Keyword").ToString
            Dim tagarray As String() = Split(tagname, "-")
            Dim i As Integer
            Dim strname As String = ""
            For i = 0 To tagarray.Length - 1
                strname += ReturnValue("Select Tag_Name from Tag_Master where Tag_Kid='" & RemoveLiterals(tagarray(i)) & "' and Tag_IsDeleted='0'") & ", "
            Next

            txtTitle.Text = dt.Rows(0).Item("Article_Title").ToString

            txtKeywords.Text = strname.Remove(strname.Length - 2, 2)

            'CType(TestJJRichTextBox1.FindControl("frmTxtArea"), HtmlControls.HtmlGenericControl).InnerHtml = dt.Rows(0).Item("Article_Body").ToString

            TestJJRichTextBox1.Text = dt.Rows(0).Item("Article_Body").ToString
            ddlCategory.ClearSelection()
            ddlCategory.Items.FindByValue(dt.Rows(0).Item("Article_CategoryId")).Selected = True
            BtnPageLoad(False)

            'JavaScriptFunction(Me, "btnWrite('" & CType(TestJJRichTextBox1.FindControl("frmTxtArea"), HtmlGenericControl).ClientID.ToString & "','" & dt.Rows(0).Item("Article_Body").ToString & "')", "functClear")


            'Call GridClickVisible(Me, btnAdd, btnSave, btnUpdate, btnDelete, btnCancel)
        Catch ex As Exception

        End Try
    End Sub
    Private Sub InsertTagKeyword(ByVal strMode As String)
        Try

            Dim cmd As New Data.SqlClient.SqlCommand()
            Dim sqlcoll As Data.SqlClient.SqlParameterCollection = cmd.Parameters
            sqlcoll.Clear()

            Dim keywords As String()
            keywords = Split(Trim(txtKeywords.Text), ",")
            Dim id As String
            Dim i As Integer
            Dim ds As DataSet
            For i = 0 To keywords.Length - 1
                If keywords(i).ToString <> " " Then
                    If keywords(i).ToString <> Nothing Then
                        flag = True
                        ds = TagChecking(Trim(keywords(i)))
                        id = NewPrimaryKey(Me)
                        If ds.Tables(0).Rows.Count = 0 Then
                            sqlcoll.Add("@Tag_Kid", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(id)
                            sqlcoll.Add("@Tag_Name", Data.SqlDbType.NVarChar, 200).Value = Trim(keywords(i).ToUpper)
                            sqlcoll.Add("@Tag_UserId", Data.SqlDbType.NVarChar, 10).Value = RemoveLiterals(Session("g_User"))
                            sqlcoll.Add("@FormName", Data.SqlDbType.NVarChar, 50).Value = Me.Title.ToString
                            sqlcoll.Add("@Mode", Data.SqlDbType.Char, 10).Value = strMode.Trim
                            ExecQuery("TagMaster_Proc", sqlcoll)
                            sqlcoll.Clear()
                            tagkid += "-" & RemoveLiterals(id)
                        Else
                            tagkid += "-" & RemoveLiterals(ds.Tables(0).Rows(0).Item(0).ToString)
                        End If
                    End If
                End If
            Next

        Catch ex As Exception
        End Try

    End Sub

    Public Function TagChecking(ByVal str As String) As DataSet
        Dim cn As New System.Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings("ConnectionString"))
        Dim objAdapter As SqlDataAdapter
        Dim ObjDS As DataSet

        cn.Open()
        Try
            objAdapter = New SqlDataAdapter("TagChecking_Proc", cn)
            objAdapter.SelectCommand.CommandType = CommandType.StoredProcedure
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@Tag_Name", SqlDbType.NVarChar, 200))
            objAdapter.SelectCommand.Parameters("@Tag_Name").Value = Trim(str.ToUpper)
            ObjDS = New DataSet
            objAdapter.Fill(ObjDS)
            Return ObjDS

        Catch ex As Exception
            Throw ex
        Finally
            cn.Close()
            cn.Dispose()
        End Try

    End Function

    Protected Sub ddlCategory_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlCategory.SelectedIndexChanged
        If ddlCategory.SelectedIndex > 0 Then
            fillgrid(RemoveLiterals(ddlCategory.SelectedValue.ToString))
        Else
            fillgrid("")
        End If
        'BtnPageLoad(True)
        'TestJJRichTextBox1.Text = ""
    End Sub
End Class
