Quantcast
Channel: Thread Completa - ASP.Net + Vb.Net
Viewing all articles
Browse latest Browse all 5

Thread Completa - ASP.Net + Vb.Net

$
0
0

Pessoal, bom dia...

Estou desenvolvendo uma aplicação de Cadastro de Solicitação e estou com a seguinte necessidade...

Quando a pessoal clicar em Salvar, Ocultar Todos os campos, e exibir uma imagem de "Carregando" e quando terminar, redirecionar para uma outra página...


Então Eu criei uma thread onde faz um cadastro em banco sql, ele exibe a imagem após clicar, porém eu não estou conseguindo redirecionar após terminar de executar a thread.

Meu código está assim

Protected Sub btSalvar_Click(sender As Object, e As ImageClickEventArgs) Handles btSalvar.Click
        If cbAmbiente.Text = "" _
        Or cbEquipamento.Text = "" _
        Or cbUsuario.Text = "" _
        Or txtAssunto.Text = "" _
        Or txtIncidente.Text = "" Then
            lblMensagem.Visible = True
            lblMensagem.Text = " ****** Favor informar Todos os Campos ******"
            lblMensagem.ForeColor = Drawing.Color.Red
            Exit Sub
        End If

        ' Oculta Labels
        lblAmbiente.Visible = False
        lblAnexo.Visible = False
        lblAssunto.Visible = False
        lblEquipamento.Visible = False
        lblIncidente.Visible = False
        lblUsuario.Visible = False
        ' Oculta Comboboxs
        cbUsuario.Visible = False
        cbEquipamento.Visible = False
        cbAmbiente.Visible = False
        ' Oculta FileUpload
        fuAnexo.Visible = False
        ' Oculta Textbox
        txtAssunto.Visible = False
        txtIncidente.Visible = False
        ' Oculta Botões
        btSalvar.Visible = False
        btCancelar.Visible = False
        ' Oculta Links
        lnkCancelar.Visible = False
        lnkSalvar.Visible = False

        With lblMensagem
            .Visible = True
            .Text = "Carregando ... "
        End With

        With imgCarregando
            .Visible = True
            .DataBind()
        End With

    End Sub

Dim WithEvents t1 As Solicitacao

    Protected Sub imgCarregando_DataBinding(sender As Object, e As EventArgs) Handles imgCarregando.DataBinding
        Dim sSolicitacao As New Solicitacao

        t1 = New Solicitacao

        With sSolicitacao
            .AmbienteID = cbAmbiente.SelectedValue
            .Assunto = txtAssunto.Text
            .DataCadastro = Now
            .EquipamentoID = cbEquipamento.SelectedValue
            .fuAnexo = fuAnexo
            .FuncionarioID = cbUsuario.SelectedValue
            .Incidente = txtIncidente.Text
            .lblMensagem = lblMensagem
        End With

        Dim t As Thread = New Thread(AddressOf sSolicitacao.Salvar)
        t.Start()
    End Sub

    Sub AreaEventHandler(ByVal Completa As Boolean) Handles t1.ThreadCompleta
        If Completa = True Then
Response.Redirect("Sucesso.aspx")
        End If

    End Sub


E eu criei tb essa classe

Imports Microsoft.VisualBasic
Imports System.IO
Public Class Solicitacao
    Public FuncionarioID As Integer
    Public DataCadastro As DateTime
    Public Assunto As String
    Public Incidente As String
    Public EquipamentoID As Integer
    Public AmbienteID As Integer
    Public fuAnexo As FileUpload
    Public lblMensagem As Label

    Public Event ThreadCompleta(ByVal Completa As Boolean)

    Public Sub Salvar()
        ' Verifica se a solicitação tem anexo
        If fuAnexo.HasFile Then

            ' Atribui informações do arquivo nas variaveis
            Dim NomeAnexo As String = Path.GetFileNameWithoutExtension(fuAnexo.PostedFile.FileName)
            Dim Extensao As String = Path.GetExtension(fuAnexo.PostedFile.FileName)
            Dim Tamanho As Integer = fuAnexo.PostedFile.InputStream.Length

            ' Lê o arquivo e converte em Binário
            Dim ArquivoByte As Byte() = New Byte(Tamanho) {}

            fuAnexo.PostedFile.InputStream.Read(ArquivoByte, 0, Tamanho)

            ' Comando da Storaded Procedure caso tenha anexo
            Cmd.CommandText = "uspCadastraSolicitacao @FuncionarioID, " & _"@DataCadastro, " & _"@Assunto, " & _"@Descricao, " & _"@EquipamentoID, " & _"@AmbienteID, " & _"@Anexo, " & _"@Extensao, " & _"@Tamanho, " & _"@NomeAnexo"


            ' Adiciona parametros ao comando com valores, caso tenha anexo
            Cmd.Parameters.AddWithValue("@Anexo", ArquivoByte)
            Cmd.Parameters.AddWithValue("@Extensao", Extensao)
            Cmd.Parameters.AddWithValue("@Tamanho", Tamanho)
            Cmd.Parameters.AddWithValue("@NomeAnexo", NomeAnexo)
        Else
            ' Definição do comando caso não tenha anexo
            Cmd.CommandText = "uspCadastraSolicitacao @FuncionarioID, " & _"@DataCadastro, " & _"@Assunto, " & _"@Descricao, " & _"@EquipamentoID, " & _"@AmbienteID, " & _"NULL, " & _"NULL, " & _"NULL, " & _"NULL"
        End If

        ' Parametros padrões de inserção
        Cmd.Parameters.AddWithValue("@FuncionarioID", FuncionarioID)
        Cmd.Parameters.AddWithValue("@DataCadastro", DataCadastro)
        Cmd.Parameters.AddWithValue("@Assunto", Assunto)
        Cmd.Parameters.AddWithValue("@Descricao", Incidente)
        Cmd.Parameters.AddWithValue("@EquipamentoID", EquipamentoID)
        Cmd.Parameters.AddWithValue("@AmbienteID", AmbienteID)

        Try
            ' Abre conexão
            Conn.Open()
            Cmd.Connection = Conn
            Try
                ' Executa inserção
                Cmd.ExecuteNonQuery()
                ' Fecha conexão
                Conn.Close()
            Catch ex As Exception
                ' Informa erro ao cadastrar solicitação
                lblMensagem.Text = "Erro ao tentar cadastrar solicitação. Favor informar ao TI. Erro: " & ex.Message
                Conn.Close()
                ' Fecha conexão
                Exit Sub
            End Try
        Catch ex As Exception
            ' Informa erro ao abrir conexão
            lblMensagem.Text = "Erro ao tentar cadastrar solicitação. Favor informar ao TI. Erro: " & ex.Message
        End Try

        RaiseEvent ThreadCompleta(True)
    End Sub
End Class


Viewing all articles
Browse latest Browse all 5

Latest Images

Trending Articles





Latest Images