Imports DevExpress.Web

Public Class ucPlazasPublico
    Inherits System.Web.UI.UserControl

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        gridPuestosPublicados.FilterExpression = ""
        gridPuestosEvaluacion.FilterExpression = ""
        gridPuestosCerrados.FilterExpression = ""

        If Not IsPostBack Then


            Dim ins As String = Request.QueryString("ins")

            If Not String.IsNullOrEmpty(ins) Then
                cbInstituciones.Controls.Clear()
                Dim btnTodas = CrearBoton("btnTodas", "TODAS LAS INSTITUCIONES", "Mostrar todas las instituciones disponibles")
                btnTodas.ClientSideEvents.Click = "function(s, e)  { window.location = 'Concursos.aspx'; }"
                cbInstituciones.Controls.Add(btnTodas)

                Dim oIns As New InstitucionBusinessObject(ins)
                Dim btnIns = CrearBoton(oIns.Entity.idInstitucion, oIns.Entity.siglasInstitucion, oIns.Entity.nombreInstitucion)
                cbInstituciones.Controls.Add(btnIns)

                gridPuestosPublicados.FilterExpression = String.Format("[idInstitucion] = '{0}'", ins)
                gridPuestosPublicados.DataBind()

            Else



                cbInstituciones.Controls.Clear()
                Dim ListaInstitucion As EntityList(Of Institucion) = InstitucionBusinessObject.GetListInstitucionesByEstado("2")

                For Each oIns As Institucion In ListaInstitucion
                    Dim btnIns = CrearBoton(oIns.idInstitucion, oIns.siglasInstitucion, oIns.nombreInstitucion)
                    btnIns.ClientSideEvents.Click = String.Format("function(s, e)  {{ gridPuestosPublicados.PerformCallback('{0}'); cbInstituciones.PerformCallback('{0}'); }}", oIns.idInstitucion)
                    cbInstituciones.Controls.Add(btnIns)

                Next

            End If
        End If



    End Sub


    Function CrearBoton(ID As String, texto As String, Tooltip As String) As ASPxButton
        Dim btn As New ASPxButton() With {.ID = ID, .Text = texto, .ToolTip = Tooltip, .Theme = "Glass", .AutoPostBack = False, .UseSubmitBehavior = False}
        Return btn
    End Function
    Protected Sub gridPuestosPublicados_CustomColumnDisplayText(sender As Object, e As DevExpress.Web.ASPxGridViewColumnDisplayTextEventArgs) Handles gridPuestosPublicados.CustomColumnDisplayText
        If e.Column.FieldName = "fechaCierreInscripcion" Then
            If CDate(e.Value).Date = Now.Date Then
                e.DisplayText = "HOY"
            End If
        End If
    End Sub

    Protected Sub gridPuestosPublicados_HtmlDataCellPrepared(sender As Object, e As DevExpress.Web.ASPxGridViewTableDataCellEventArgs) Handles gridPuestosPublicados.HtmlDataCellPrepared
        Dim btn As ASPxButton = gridPuestosPublicados.FindRowCellTemplateControl(e.VisibleIndex, e.DataColumn, "btnAplicar")
        If Not btn Is Nothing Then
            btn.ClientSideEvents.Click = String.Format("function(s, e) {{OnMoreInfoClick('{0}');}}", e.KeyValue)
        End If
        Dim btn2 As ASPxButton = gridPuestosPublicados.FindRowCellTemplateControl(e.VisibleIndex, e.DataColumn, "btnProceso")
        If Not btn2 Is Nothing Then
            btn2.ClientSideEvents.Click = String.Format("function(s, e) {{Proceso('{0}');}}", e.KeyValue)
        End If
        If e.DataColumn.FieldName = "siglasInstitucion" Then
            If Not String.IsNullOrEmpty(e.CellValue) Then
                e.Cell.ToolTip = gridPuestosPublicados.GetRowValues(e.VisibleIndex, "nombreInstitucion").ToString
            End If
        End If
    End Sub


    Protected Sub gridPuestosEvaluacion_HtmlDataCellPrepared(sender As Object, e As ASPxGridViewTableDataCellEventArgs) Handles gridPuestosEvaluacion.HtmlDataCellPrepared
        Dim btn As ASPxButton = gridPuestosEvaluacion.FindRowCellTemplateControl(e.VisibleIndex, e.DataColumn, "btnAplicar")
        If Not btn Is Nothing Then
            btn.ClientSideEvents.Click = String.Format("function(s, e) {{OnMoreInfoClick('{0}');}}", e.KeyValue)
        End If
        Dim btn2 As ASPxButton = gridPuestosEvaluacion.FindRowCellTemplateControl(e.VisibleIndex, e.DataColumn, "btnProceso")
        If Not btn2 Is Nothing Then
            btn2.ClientSideEvents.Click = String.Format("function(s, e) {{Proceso('{0}');}}", e.KeyValue)
        End If
        If e.DataColumn.FieldName = "siglasInstitucion" Then
            If Not String.IsNullOrEmpty(e.CellValue) Then
                e.Cell.ToolTip = gridPuestosEvaluacion.GetRowValues(e.VisibleIndex, "nombreInstitucion").ToString
            End If
        End If
    End Sub

    Protected Sub gridPuestosCerrados_HtmlDataCellPrepared(sender As Object, e As ASPxGridViewTableDataCellEventArgs) Handles gridPuestosCerrados.HtmlDataCellPrepared
        Dim btn As ASPxButton = gridPuestosCerrados.FindRowCellTemplateControl(e.VisibleIndex, e.DataColumn, "btnAplicar")
        If Not btn Is Nothing Then
            btn.ClientSideEvents.Click = String.Format("function(s, e) {{OnMoreInfoClick('{0}');}}", e.KeyValue)
        End If
        Dim btn2 As ASPxButton = gridPuestosCerrados.FindRowCellTemplateControl(e.VisibleIndex, e.DataColumn, "btnProceso")
        If Not btn2 Is Nothing Then
            btn2.ClientSideEvents.Click = String.Format("function(s, e) {{Proceso('{0}');}}", e.KeyValue)
        End If
        If e.DataColumn.FieldName = "siglasInstitucion" Then
            If Not String.IsNullOrEmpty(e.CellValue) Then
                e.Cell.ToolTip = gridPuestosCerrados.GetRowValues(e.VisibleIndex, "nombreInstitucion").ToString
            End If
        End If
    End Sub

    Protected Sub gridPuestosPublicados_CustomCallback(sender As Object, e As ASPxGridViewCustomCallbackEventArgs) Handles gridPuestosPublicados.CustomCallback
        gridPuestosPublicados.FilterExpression = String.Format("[idInstitucion] = '{0}'", e.Parameters)
    End Sub

    Protected Sub gridPuestosEvaluacion_CustomCallback(sender As Object, e As ASPxGridViewCustomCallbackEventArgs) Handles gridPuestosEvaluacion.CustomCallback
        gridPuestosEvaluacion.FilterExpression = String.Format("[idInstitucion] = '{0}'", e.Parameters)
        'gridPuestosEvaluacion.JSProperties("cpins") = e.Parameters

    End Sub

    Protected Sub gridPuestosCerrados_CustomCallback(sender As Object, e As ASPxGridViewCustomCallbackEventArgs) Handles gridPuestosCerrados.CustomCallback
        gridPuestosCerrados.FilterExpression = String.Format("[idInstitucion] = '{0}'", e.Parameters)
    End Sub

    Protected Sub cbInstituciones_Callback(sender As Object, e As CallbackEventArgsBase) Handles cbInstituciones.Callback
        cbInstituciones.Controls.Clear()
        Dim btnTodas = CrearBoton("btnTodas", "TODAS LAS INSTITUCIONES", "Mostrar todas las instituciones disponibles")

        btnTodas.ClientSideEvents.Click = "function(s, e)  {{ window.location = 'Concursos.aspx'; }}"
        cbInstituciones.Controls.Add(btnTodas)

        Dim oIns As New InstitucionBusinessObject(e.Parameter)

        Dim btnIns = CrearBoton(oIns.Entity.idInstitucion, oIns.Entity.siglasInstitucion, oIns.Entity.nombreInstitucion)
        cbInstituciones.Controls.Add(btnIns)
    End Sub

    Protected Sub cbInstitucionesEvaluacion_Callback(sender As Object, e As CallbackEventArgsBase) Handles cbInstitucionesEvaluacion.Callback
        cbInstitucionesEvaluacion.Controls.Clear()
        If e.Parameter = "0" Then
            Dim ListaInstitucionEval As EntityList(Of Institucion) = InstitucionBusinessObject.GetListInstitucionesByEstado("3,5,6")

            For Each oIns As Institucion In ListaInstitucionEval
                Dim btnIns = CrearBoton(oIns.idInstitucion, oIns.siglasInstitucion, oIns.nombreInstitucion)
                btnIns.ClientSideEvents.Click = String.Format("function(s, e)  {{ gridPuestosEvaluacion.PerformCallback('{0}'); cbInstitucionesEvaluacion.PerformCallback('{0}');}}", oIns.idInstitucion)
                cbInstitucionesEvaluacion.Controls.Add(btnIns)

            Next
        Else

            Dim btnTodas = CrearBoton("btnTodas", "TODAS LAS INSTITUCIONES", "Mostrar todas las instituciones disponibles")

            btnTodas.ClientSideEvents.Click = "function(s, e)  {{ gridPuestosEvaluacion.ClearFilter();cbInstitucionesEvaluacion.PerformCallback('0'); }}"
            cbInstitucionesEvaluacion.Controls.Add(btnTodas)
            Dim oIns As New InstitucionBusinessObject(e.Parameter)

            Dim btnIns = CrearBoton(oIns.Entity.idInstitucion, oIns.Entity.siglasInstitucion, oIns.Entity.nombreInstitucion)
            cbInstitucionesEvaluacion.Controls.Add(btnIns)
        End If

    End Sub

    Protected Sub cbInstitucionesFinalizadas_Callback(sender As Object, e As CallbackEventArgsBase) Handles cbInstitucionesFinalizadas.Callback
        cbInstitucionesFinalizadas.Controls.Clear()
        If e.Parameter = "0" Then
            Dim ListaInstitucionEval As EntityList(Of Institucion) = InstitucionBusinessObject.GetListInstitucionesByEstado("4,7")

            For Each oIns As Institucion In ListaInstitucionEval
                Dim btnIns = CrearBoton(oIns.idInstitucion, oIns.siglasInstitucion, oIns.nombreInstitucion)
                btnIns.ClientSideEvents.Click = String.Format("function(s, e)  {{ gridPuestosCerrados.PerformCallback('{0}'); cbInstitucionesFinalizadas.PerformCallback('{0}');}}", oIns.idInstitucion)
                cbInstitucionesFinalizadas.Controls.Add(btnIns)

            Next
        Else

            Dim btnTodas = CrearBoton("btnTodas", "TODAS LAS INSTITUCIONES", "Mostrar todas las instituciones disponibles")

            btnTodas.ClientSideEvents.Click = "function(s, e)  {{ gridPuestosCerrados.ClearFilter();cbInstitucionesFinalizadas.PerformCallback('0'); }}"
            cbInstitucionesFinalizadas.Controls.Add(btnTodas)
            Dim oIns As New InstitucionBusinessObject(e.Parameter)

            Dim btnIns = CrearBoton(oIns.Entity.idInstitucion, oIns.Entity.siglasInstitucion, oIns.Entity.nombreInstitucion)
            cbInstitucionesFinalizadas.Controls.Add(btnIns)
        End If
    End Sub

    Protected Sub gridPuestosPublicados_HtmlRowPrepared(sender As Object, e As ASPxGridViewTableRowEventArgs) Handles gridPuestosPublicados.HtmlRowPrepared
        If (e.RowType <> GridViewRowType.Data) Then
            Return
        End If
        If Not e.GetValue("resaltar") Is Nothing Then
            If Not e.GetValue("resaltar").ToString.Equals("") Then
                If CBool(e.GetValue("resaltar")) Then
                    e.Row.Font.Bold = True
                    'e.Row.Font.Italic = True
                    'e.Row.ForeColor = Drawing.Color.DarkSlateBlue
                End If
            End If
        End If
    End Sub

    Protected Sub gridPuestosEvaluacion_HtmlRowPrepared(sender As Object, e As ASPxGridViewTableRowEventArgs) Handles gridPuestosEvaluacion.HtmlRowPrepared
        If (e.RowType <> GridViewRowType.Data) Then
            Return
        End If
        If Not e.GetValue("resaltar") Is Nothing Then


            If Not e.GetValue("resaltar").ToString.Equals("") Then
                If CBool(e.GetValue("resaltar")) Then
                    e.Row.Font.Bold = True
                    'e.Row.Font.Italic = True
                    'e.Row.ForeColor = Drawing.Color.DarkSlateBlue
                End If

            End If
        End If
    End Sub

    Protected Sub gridPuestosCerrados_HtmlRowPrepared(sender As Object, e As ASPxGridViewTableRowEventArgs) Handles gridPuestosCerrados.HtmlRowPrepared
        If (e.RowType <> GridViewRowType.Data) Then
            Return
        End If
        If Not e.GetValue("resaltar") Is Nothing Then
            If Not e.GetValue("resaltar").ToString.Equals("") Then
                If CBool(e.GetValue("resaltar")) Then
                    e.Row.Font.Bold = True
                    'e.Row.Font.Italic = True
                    'e.Row.ForeColor = Drawing.Color.DarkSlateBlue
                End If
            End If
        End If
    End Sub

    Protected Sub pcPlazas_ActiveTabChanged(source As Object, e As TabControlEventArgs) Handles pcPlazas.ActiveTabChanged
        Select Case pcPlazas.ActiveTabIndex
            Case 0

                cbInstituciones.Controls.Clear()
                Dim ListaInstitucion As EntityList(Of Institucion) = InstitucionBusinessObject.GetListInstitucionesByEstado("2")

                For Each oIns As Institucion In ListaInstitucion
                    Dim btnIns = CrearBoton(oIns.idInstitucion, oIns.siglasInstitucion, oIns.nombreInstitucion)
                    btnIns.ClientSideEvents.Click = String.Format("function(s, e)  {{ gridPuestosPublicados.PerformCallback('{0}'); cbInstituciones.PerformCallback('{0}'); }}", oIns.idInstitucion)
                    cbInstituciones.Controls.Add(btnIns)

                Next


            Case 1



                cbInstitucionesEvaluacion.Controls.Clear()
                Dim ListaInstitucionEval As EntityList(Of Institucion) = InstitucionBusinessObject.GetListInstitucionesByEstado("3,5,6")

                For Each oIns As Institucion In ListaInstitucionEval
                    Dim btnIns = CrearBoton(oIns.idInstitucion, oIns.siglasInstitucion, oIns.nombreInstitucion)
                    btnIns.ClientSideEvents.Click = String.Format("function(s, e)  {{ gridPuestosEvaluacion.PerformCallback('{0}'); cbInstitucionesEvaluacion.PerformCallback('{0}');}}", oIns.idInstitucion)
                    cbInstitucionesEvaluacion.Controls.Add(btnIns)

                Next


            Case 2

                cbInstitucionesFinalizadas.Controls.Clear()
                Dim ListaInstitucionCerradas As EntityList(Of Institucion) = InstitucionBusinessObject.GetListInstitucionesByEstado("4,7")

                For Each oIns As Institucion In ListaInstitucionCerradas
                    Dim btnIns = CrearBoton(oIns.idInstitucion, oIns.siglasInstitucion, oIns.nombreInstitucion)
                    btnIns.ClientSideEvents.Click = String.Format("function(s, e)  {{ gridPuestosCerrados.PerformCallback('{0}'); cbInstitucionesFinalizadas.PerformCallback('{0}'); }}", oIns.idInstitucion)
                    cbInstitucionesFinalizadas.Controls.Add(btnIns)

                Next
            Case Else
                Exit Select
        End Select
    End Sub
End Class