Imports DevExpress.Web
Imports System.ComponentModel

Public Class ucCargaArchivo
    Inherits System.Web.UI.UserControl


    Private ReadOnly RutaEspecialidad As String = ConfigurationManager.AppSettings("RutaArchivos")

    Public ReadOnly Property GetASPxUploadControl As ASPxUploadControl
        Get
            Return CargaArchivoASPxUploadControl
        End Get
    End Property

    Public ReadOnly Property nombreArchivoCargado As String
        Get
            Return Session("nombreArchivoCargado")
        End Get
    End Property

    <Bindable(True)> _
    Public Property HyperLinkArchivo As String
        Get
            Return ArchivoASPxHyperLink.Text
        End Get
        Set(value As String)
            If String.IsNullOrEmpty(value) Then
                'ArchivoASPxHyperLink.Visible = False
                ImagenASPxHyperLink.Visible = False
            Else
                'ArchivoASPxHyperLink.Visible = True
                ImagenASPxHyperLink.Visible = True
                ArchivoASPxHyperLink.Text = value
                ArchivoASPxHyperLink.NavigateUrl = RutaEspecialidad & value
                ImagenASPxHyperLink.Text = value
                ImagenASPxHyperLink.NavigateUrl = RutaEspecialidad & value
            End If
        End Set
    End Property

    Public Property VerHyperlinkArchivo As Boolean
        Get
            Return ArchivoASPxHyperLink.Visible
        End Get
        Set(value As Boolean)
            ImagenASPxHyperLink.Visible = value
            ArchivoASPxHyperLink.Visible = value
        End Set
    End Property

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Private Sub ASPxUploadControl1_FileUploadComplete(sender As Object, e As DevExpress.Web.FileUploadCompleteEventArgs) Handles CargaArchivoASPxUploadControl.FileUploadComplete
        'If (TryCast(sender, ASPxUploadControl)).UploadedFiles(0).IsValid Then
        '    Session("archivo") = (TryCast(sender, ASPxUploadControl)).UploadedFiles(0).FileBytes
        'End If

        e.CallbackData = SavePostedFile(e.UploadedFile)
    End Sub

    Public Function SavePostedFile(ByVal uploadedFile As UploadedFile) As String

        If (Not uploadedFile.IsValid) Then
            Return String.Empty
        End If

        Dim postfijo As String = String.Format("_{0}.pdf", Page.User.Identity.Name)

        Dim NuevoNombre As String = uploadedFile.FileName.Replace(".pdf", "") & postfijo

        uploadedFile.SaveAs(MapPath(RutaEspecialidad & NuevoNombre))
        'uploadedFile.SaveAs(RutaEspecialidad & NuevoNombre)

        Session("nombreArchivoCargado") = NuevoNombre
        HyperLinkArchivo = NuevoNombre

        Return NuevoNombre
    End Function

    'Public Sub SetHyperLinkArchivo(nombreArchivo As String)

    'End Sub
End Class