Imports System
Imports System.IO
Imports System.Data
Imports System.Data.SqlClient
Partial Class BusinessAssociates_SSA_Contacts
    Inherits System.Web.UI.Page
    Dim QueryStr As String
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        lblErrorData1.Text = ""
        lblErrorData1.Visible = False
        If (Not IsPostBack) Then
            txtVCompanyID.Text = "f6b59677-9946-489c-8628-465872369428"
            txtSSAID.Text = Session("SSAID").ToString
            ' FillSSADetails()
            BindFirstCity()
            BindSecondCity()
            BindCategory()
            cmdAddContacts.Visible = False
            lblCustomer.Visible = False
            tblCustomer.Visible = False
        End If
    End Sub

    Public Sub BindFirstCity()
        Dim cn As New System.Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings("Connection4Voffice"))
        Dim objAdapter As SqlDataAdapter
        Dim ObjDS As DataSet

        cn.Open()

        Try
            objAdapter = New SqlDataAdapter("Select_CityByState_Proc", cn)
            objAdapter.SelectCommand.CommandType = CommandType.StoredProcedure

            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@StateID", SqlDbType.Int))

            objAdapter.SelectCommand.Parameters("@StateID").Value = -1
            ObjDS = New DataSet
            objAdapter.Fill(ObjDS, "Location_City")

            If ObjDS.Tables(0).Rows.Count > 0 Then
                ddlCity.DataSource = ObjDS
                ddlCity.DataBind()
                ddlCity.Items.Insert(0, New ListItem("Select", "-1"))
            Else
                ddlCity.Items.Clear()
                ddlCity.Items.Insert(0, New ListItem("Select", "-1"))
            End If

            ObjDS.Clear()
            ObjDS.Dispose()

        Catch ex As Exception

        Finally
            cn.Close()
            cn.Dispose()
        End Try
    End Sub

    Public Sub BindSecondCity()
        Dim cn As New System.Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings("Connection4Voffice"))
        Dim objAdapter As SqlDataAdapter
        Dim ObjDS As DataSet

        cn.Open()

        Try
            objAdapter = New SqlDataAdapter("Select_CityByState_Proc", cn)
            objAdapter.SelectCommand.CommandType = CommandType.StoredProcedure

            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@StateID", SqlDbType.Int))

            objAdapter.SelectCommand.Parameters("@StateID").Value = -1
            ObjDS = New DataSet
            objAdapter.Fill(ObjDS, "Location_City")

            If ObjDS.Tables(0).Rows.Count > 0 Then
                ddlCity1.DataSource = ObjDS
                ddlCity1.DataBind()
                ddlCity1.Items.Insert(0, New ListItem("Select", "-1"))
            Else
                ddlCity1.Items.Clear()
                ddlCity1.Items.Insert(0, New ListItem("Select", "-1"))
            End If

            ObjDS.Clear()
            ObjDS.Dispose()

        Catch ex As Exception

        Finally
            cn.Close()
            cn.Dispose()
        End Try
    End Sub

    Private Sub BindCategory()
        Try
            Dim DsCategory As New DataSet

            QueryStr = "select Category_Kid,Category_Name from Category_Master where Category_ParentId='Root Category' and Category_IsDeleted='0' order by category_name asc"

            DsCategory = SelectCategory(QueryStr)

            If DsCategory.Tables(0).Rows.Count > 0 Then
                chkCategory.DataSource = DsCategory
                chkCategory.DataBind()
            Else
                chkCategory.Items.Clear()
            End If
        Catch ex As Exception
            ex.Message.ToString()
        End Try
    End Sub

    Public Shared Function SelectCategory(ByVal Query 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(Query, cn)
            objAdapter.SelectCommand.CommandType = CommandType.Text

            ObjDS = New DataSet
            objAdapter.Fill(ObjDS, "Category")

            Return ObjDS

        Catch ex As Exception
            Throw ex
        Finally
            cn.Close()
            cn.Dispose()
        End Try

    End Function

    Public Sub FillGrid()
        Dim cn As New System.Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings("Connection4Voffice"))
        Dim objAdapter As SqlDataAdapter
        Dim ObjDS As DataSet

        cn.Open()

        Try
            objAdapter = New SqlDataAdapter("Select_CRMContactsByCityID_Proc", cn)
            objAdapter.SelectCommand.CommandType = CommandType.StoredProcedure

            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@CityID", SqlDbType.Int))

            objAdapter.SelectCommand.Parameters("@CityID").Value = ddlCity.SelectedValue
            
            ObjDS = New DataSet
            objAdapter.Fill(ObjDS, "ContactDetails")

            gvCustomer.DataSource = ObjDS
            gvCustomer.DataBind()

            ObjDS.Clear()
            ObjDS.Dispose()

        Catch ex As Exception

        Finally
            cn.Close()
            cn.Dispose()
        End Try
    End Sub

    Protected Sub gvCustomer_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs)
        gvCustomer.PageIndex = e.NewPageIndex
        FillGrid()
    End Sub

    Protected Sub gvCustomer_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Try
            tblCustomer.Visible = True

            txtContactID.Text = gvCustomer.SelectedRow.Cells(1).Text
            txtCompanyName.Text = Server.HtmlDecode(gvCustomer.SelectedRow.Cells(2).Text)
            ddlType.SelectedValue = gvCustomer.SelectedRow.Cells(3).Text
            txtContactPerson.Text = gvCustomer.SelectedRow.Cells(4).Text
            BindSecondCity()
            ddlCity1.SelectedValue = gvCustomer.SelectedRow.Cells(5).Text
            txtPhone.Text = IIf(gvCustomer.SelectedRow.Cells(6).Text = "&nbsp;", "", gvCustomer.SelectedRow.Cells(6).Text)
            txtMobile.Text = IIf(gvCustomer.SelectedRow.Cells(7).Text = "&nbsp;", "", gvCustomer.SelectedRow.Cells(7).Text)
            txtEmailID.Text = IIf(gvCustomer.SelectedRow.Cells(8).Text = "&nbsp;", "", gvCustomer.SelectedRow.Cells(8).Text)
            txtAddress.Text = Server.HtmlDecode(gvCustomer.SelectedRow.Cells(9).Text)
            BindCategory()

            Dim CategoryStr As String

            CategoryStr = Server.HtmlDecode(gvCustomer.SelectedRow.Cells(10).Text) & "-"
            txtCategory.Text = Server.HtmlDecode(gvCustomer.SelectedRow.Cells(10).Text)

            Dim j As Integer
            For j = 0 To chkCategory.Items.Count - 1
                If InStr(CategoryStr, chkCategory.Items(j).Value & "-") Then
                    chkCategory.Items(j).Selected = True
                End If
            Next
            txtAddMode.Text = "Update"
        Catch ex As Exception
            tblCustomer.Visible = False
        End Try
    End Sub

    Protected Sub ddlCity_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        If ddlCity.SelectedIndex > 0 Then
            FillGrid()
            cmdAddContacts.Visible = True
            tblCustomer.Visible = False
        End If
    End Sub

    Protected Sub cmdSubmit_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)


        If txtAddMode.Text.Trim = "Update" Then
        Else
            txtAddMode.Text = "Insert"
            txtContactID.Text = System.Guid.NewGuid.ToString
        End If


        If txtEmailID.Text.Trim = "" And txtPhone.Text.Trim = "" And txtMobile.Text.Trim = "" Then
            showmessage("Please Enter Email Or Phone Or Mobile.", lblErrorData1)
            Exit Sub
        End If
        Try
            Dim Cat As String

            Cat = ""
            Dim j As Integer
            For j = 0 To chkCategory.Items.Count - 1
                If chkCategory.Items(j).Selected = True Then
                    Cat += chkCategory.Items(j).Value & "-"
                End If
            Next

            txtCategory.Text = Cat.Trim("-")

            If txtCategory.Text.Trim = "" Then
                showmessage("Please Select Atleast One Category.", lblErrorData1)
                Exit Sub
            End If

            updateData(txtAddMode.Text)
            showmessage("Records Added Successfully", lblErrorData1)
            ClearData()
            tblCustomer.Visible = False
            FillGrid()
        Catch ex As Exception
            showmessage("Please Try again Later", lblErrorData1)
        End Try
        
    End Sub

    Public Sub updateData(ByVal Mode As String)
        Dim cn As New System.Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings("Connection4Voffice"))
        Dim objAdapter As SqlDataAdapter

        cn.Open()

        Try
            objAdapter = New SqlDataAdapter("Insert_CRMContacts_Proc", cn)
            objAdapter.SelectCommand.CommandType = CommandType.StoredProcedure

            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@ContactID", SqlDbType.VarChar))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@CompanyName", SqlDbType.NVarChar, 100))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@CompanyType", SqlDbType.Int))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@ContactName", SqlDbType.NVarChar, 100))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@CityID", SqlDbType.Int))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@CompanyAddress", SqlDbType.NVarChar, 500))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@EmailAddress", SqlDbType.NVarChar, 100))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@PhoneNo", SqlDbType.NVarChar, 20))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@Mobile", SqlDbType.NVarChar, 20))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@CategoryName", SqlDbType.NVarChar, 100))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@CompanyID", SqlDbType.VarChar))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@FormName", SqlDbType.NVarChar, 50))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10))

            objAdapter.SelectCommand.Parameters("@ContactID").Value = txtContactID.Text.Trim
            objAdapter.SelectCommand.Parameters("@CompanyName").Value = txtCompanyName.Text.Trim
            objAdapter.SelectCommand.Parameters("@CompanyType").Value = ddlType.SelectedValue
            objAdapter.SelectCommand.Parameters("@ContactName").Value = txtContactPerson.Text.Trim
            objAdapter.SelectCommand.Parameters("@CityID").Value = ddlCity1.SelectedValue
            objAdapter.SelectCommand.Parameters("@CompanyAddress").Value = txtAddress.Text.Trim
            objAdapter.SelectCommand.Parameters("@EmailAddress").Value = txtEmailID.Text.Trim
            objAdapter.SelectCommand.Parameters("@PhoneNo").Value = txtPhone.Text.Trim
            objAdapter.SelectCommand.Parameters("@Mobile").Value = txtMobile.Text.Trim
            objAdapter.SelectCommand.Parameters("@CategoryName").Value = txtCategory.Text.Trim
            objAdapter.SelectCommand.Parameters("@CompanyID").Value = txtVCompanyID.Text.Trim
            objAdapter.SelectCommand.Parameters("@FormName").Value = "CRM Contacts"
            objAdapter.SelectCommand.Parameters("@Mode").Value = Mode.Trim
            objAdapter.SelectCommand.ExecuteNonQuery()
        Catch ex As Exception
            Throw ex
        Finally
            cn.Close()
            cn.Dispose()
        End Try
    End Sub

    Protected Sub cmdAddContacts_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
        tblCustomer.Visible = True
        ClearData()
    End Sub

    Public Sub ClearData()
        txtCompanyName.Text = ""
        txtContactPerson.Text = ""
        ddlCity1.SelectedValue = "-1"
        ddlType.SelectedValue = "-1"
        txtAddress.Text = ""
        txtEmailID.Text = ""
        txtPhone.Text = ""
        txtMobile.Text = ""
        txtCategory.Text = ""
        chkCategory.ClearSelection()
    End Sub
End Class
