Imports System Namespace Codice.CM.Common _ Public Class ObjectInfo Public FIdOwner As Long Public Owner As SEID Public Overrides Function Equals(obj As Object) As Boolean If Not (TypeOf obj Is ObjectInfo) Then Return False End If If Owner Is Nothing Then Return True End If Return Owner.Equals(DirectCast(obj, ObjectInfo).Owner) End Function Public Overrides Function GetHashCode() As Integer Return MyBase.GetHashCode() End Function End Class _ Public Class RepositoryServerInfo Inherits ObjectInfo Public ServerName As String Public Overrides Function Equals(obj As Object) As Boolean If Not (TypeOf obj Is RepositoryServerInfo) Then Return False End If Dim repObj As RepositoryServerInfo = TryCast(obj, RepositoryServerInfo) If ServerLocator.[Get]().AreSameServer(ServerName, repObj.ServerName) Then Return False End If Return MyBase.Equals(obj) End Function Public Overrides Function GetHashCode() As Integer Return MyBase.GetHashCode() End Function End Class _ Public Class RepositoryInfo Inherits ObjectInfo Public Id As Long = -1 Public Name As String Public GUID As Guid Private mServer As String Public Sub New(repId As Long, name As String, server As String, guid As Guid) Me.New(repId, name, server, guid, Nothing) End Sub Public Sub New(repId As Long, name As String, server As String, guid As Guid, owner As SEID) Me.Id = repId Me.Name = name Me.GUID = guid If Not ServerLocator.[Get]().IsSameServer(server) Then Me.mServer = server End If Me.Owner = owner End Sub Public ReadOnly Property Server() As String Get If (mServer IsNot Nothing) AndAlso (mServer <> String.Empty) Then Return mServer End If Return ServerLocator.[Get]().GetDefaultServer() End Get End Property Public Sub SetExplicitServer(serverName As String) ' Only set the value when the client calls directly to ' the repository server, and it returns the mServer field to null. ' Needs to set it manually. If mServer Is Nothing OrElse mServer = String.Empty Then If serverName Is Nothing Then mServer = Server Else mServer = serverName End If End If End Sub Public Function GetInternalServerName() As String Return mServer End Function Public Overrides Function Equals(obj As Object) As Boolean If Me = obj Then Return True End If Dim objInfo As RepositoryInfo = TryCast(obj, RepositoryInfo) If objInfo IsNot Nothing Then Return objInfo.GUID = Me.GUID Else Return False End If End Function Public Overrides Function GetHashCode() As Integer Return GUID.GetHashCode() End Function Public Overrides Function ToString() As String Return Me.Name + " (" + Me.Server + ")" End Function Private Sub New() End Sub Public Function CreateExplicitClone() As RepositoryInfo Dim result As New RepositoryInfo() result.Id = Me.Id result.Name = Me.Name result.mServer = Me.Server result.Owner = Me.Owner result.GUID = Me.GUID Return result End Function Public Function GetRepSpec() As RepositorySpec Dim result As New RepositorySpec() result.Name = Name result.Server = Server Return result End Function End Class End Namespace Namespace Codice.Common.InRep _ Public Class ObjectInRepInfo Inherits ObjectInfo Public RepId As Long = -1 Public Id As Long = -1 Public Sub New() End Sub Public Sub New(id__1 As Long) Id = id__1 End Sub Public Overrides Function Equals(obj As Object) As Boolean If Not (TypeOf obj Is ObjectInRepInfo) Then Return False End If Dim repObj As ObjectInRepInfo = TryCast(obj, ObjectInRepInfo) If RepId <> repObj.RepId Then Return False End If If Id <> repObj.Id Then Return False End If Return MyBase.Equals(obj) End Function Public Overrides Function GetHashCode() As Integer Return MyBase.GetHashCode() End Function End Class End Namespace