Partial Class PostulanteEspecialidadBusinessObject

#Region "Contructores"
    ' Definir en esta region los constructores personalizados para el BusinessObject

    Public Overrides Function SaveChanges(entity As PostulanteEspecialidad) As MSG
        Dim MSG As New MSG("SaveChanges")
        ' pones toda tu logica de validacion previo a el guardado

        Try
            Transaction.Begin()



            MSG = MyBase.SaveChanges(entity)

            If MSG.EventType = dGen.Library.Entity.MSG.MsgType.Errors Then
                Transaction.RollBack()
                MSG.FriendlyMessage = "Error al grabar la entidad"
                Return MSG
            End If

            If entity.falso = True Then
                Dim oConcursoPostulante As New ConcursoPostulanteBusinessObject(entity.idConcursoPostulante)
                oConcursoPostulante.Entity.idEstadoConcursoPostulante = 3
                oConcursoPostulante.Entity.Calificado = True
                MSG = oConcursoPostulante.SaveChanges

                If MSG.EventType = dGen.Library.Entity.MSG.MsgType.Errors Then
                    Transaction.RollBack()
                    MSG.FriendlyMessage = "Error al cambiar el estado del Postulante"
                    Return MSG
                End If
            Else
                If ExisteDocumentoFalso(entity.idConcursoPostulante) = False Then
                    Dim oConcursoPostulante As New ConcursoPostulanteBusinessObject(entity.idConcursoPostulante)
                    oConcursoPostulante.Entity.idEstadoConcursoPostulante = 1
                    MSG = oConcursoPostulante.SaveChanges

                    If MSG.EventType = dGen.Library.Entity.MSG.MsgType.Errors Then
                        Transaction.RollBack()
                        MSG.FriendlyMessage = "Error al cambiar el estado del Postulante"
                        Return MSG
                    End If
                End If
            End If

            Transaction.Commit()
            Return MSG
        Catch ex As Exception
            Transaction.RollBack()
            MSG.FriendlyMessage = "No fue posible guardar la informacion de la plaza"
            MSG.TechnicalMessage = ex.Message
            Return MSG
        End Try
    End Function
#End Region

#Region "Metodos Generales"
    ' Definir en esta region los metodos no estaticos,
    ' estos metodos comunmente utilizan como parametros de proceso valores tomados de la propiedad entity

#End Region

#Region "Metodos Estaticos"
    ' Definir en esta region metodos estaticos
    Public Shared Function ExisteDocumentoFalso(idConcursoPostulante As Integer) As Boolean
        Return GetDdHelperInstance.ExisteDocumentoFalso(idConcursoPostulante)
    End Function
#End Region

#Region "Metodos Privados"
    ' Definir en esta region metodos privados

#End Region

#Region "Metodos Reportes"
    ' Definir en esta region metodos utilizados para reportes que comunmente devulven DataSets

#End Region
End Class
