初始化项目

This commit is contained in:
2025-12-11 14:22:51 +08:00
commit 4243e3e4d8
919 changed files with 840529 additions and 0 deletions

View File

@@ -0,0 +1,183 @@
Imports System.Data.SqlClient
Imports MySql.Data.MySqlClient
Public Class BlvMySql
''' <summary>
''' 连接字符串
''' </summary>
Private _ConnString As MySqlConnectionStringBuilder = New MySqlConnectionStringBuilder()
''' <summary>
''' MySQL 连接器
''' </summary>
Public _mySqlConn As New MySqlConnection
''' <summary>
''' 初始化 MySQL 连接对象
''' </summary>
''' <param name="ServerAddress"></param>
''' <param name="port"></param>
''' <param name="DataBaseName"></param>
''' <param name="User"></param>
''' <param name="Password"></param>
Sub New(ServerAddress As String, port As UInteger, DataBaseName As String, User As String, Password As String)
_ConnString.Server = ServerAddress
_ConnString.Port = port
_ConnString.Database = DataBaseName
_ConnString.UserID = User
_ConnString.Password = Password
End Sub
''' <summary>
''' 连接My SQL数据库
''' </summary>
Public Function ConnMySQLBase() As Boolean
Try
_mySqlConn = New MySqlConnection(_ConnString.ConnectionString)
_mySqlConn.Open()
Catch ex As Exception
Console.WriteLine($"Error Message:{ex.Message}")
Return False
End Try
Return True
End Function
#Region "MySQL增删改查"
''' <summary>
''' 插入MySQL数据
''' </summary>
''' <param name="strInsert"></param>
''' <returns></returns>
Public Function InsertMySql(strInsert As String)
Try
Dim cmd As New MySqlCommand(strInsert, _mySqlConn)
cmd.ExecuteNonQuery()
_mySqlConn.Close()
_mySqlConn.Dispose()
Catch ex As Exception
Console.WriteLine($"MySql Error:{ex.Message}")
Return False
End Try
Return True
End Function
''' <summary>
''' 修改MySQL数据
''' </summary>
''' <param name="strUpdate"></param>
''' <returns></returns>
Public Function UpdateMySql(strUpdate As String)
Dim result As Integer
Try
Dim cmd As New MySqlCommand(strUpdate, _mySqlConn)
result = cmd.ExecuteNonQuery()
_mySqlConn.Close()
_mySqlConn.Dispose()
Catch ex As Exception
Console.WriteLine($"MySql Error:{ex.Message}")
End Try
Return result
End Function
''' <summary>
''' 查询MySQL数据
''' </summary>
''' <param name="queryString">需要查询的列</param>
''' <returns></returns>
Public Function Query(queryString As String) As DataTable
Dim sda As MySqlDataAdapter = New MySqlDataAdapter(queryString, _ConnString.ConnectionString)
Dim sqlDataSet As DataTable = New DataTable()
Try
sda.Fill(sqlDataSet)
Catch ex As Exception
MsgBox($"######{Now} - MySQL查询错误: {ex.Message} 查询语句: {queryString}")
End Try
Return sqlDataSet
End Function
''' <summary>
''' 查询MySQL数据
''' </summary>
''' <param name="queryCol">需要查询的列</param>
''' <param name="TableName">需要查询的数据表名</param>
''' <param name="Conditions">需要查询的条件,默认为空</param>
''' <returns></returns>
Public Function Query(queryCol As String, TableName As String, Optional Conditions As String = "") As DataTable
Dim sql As String = $"select {queryCol} from {TableName} {Conditions}"
Dim sda As MySqlDataAdapter = New MySqlDataAdapter(sql, _ConnString.ConnectionString)
Dim sqlDataSet As DataTable = New DataTable()
Try
sda.Fill(sqlDataSet)
Catch ex As Exception
MsgBox($"######{Now} - MySQL查询错误: {ex.Message} 查询语句: {sql}")
End Try
Return sqlDataSet
End Function
#End Region
#Region "多语种信息"
''' <summary>
''' 获取多语种版本信息
''' </summary>
''' <returns></returns>
Public Function GetCloudVersionInfo() As DataTable
Dim dtUser As DataTable = New DataTable()
Dim queryStr As String = $"Select a.Language, a.Version from tbl_multilingual a
Left Join tbl_multilingual_apps b on a.ApplicationID = b.ID
where b.Application = 'C系列配置工具'"
Console.WriteLine($"获取多语种版本信息查询语句:{queryStr}")
Dim sda As MySqlDataAdapter = New MySqlDataAdapter(queryStr, _ConnString.ConnectionString)
Try
sda.Fill(dtUser)
Catch ex As Exception
MsgBox($"######{Now} - MySQL查询错误: {ex.Message} 查询语句: ")
End Try
Return dtUser
End Function
''' <summary>
''' 获取云端数据信息
''' </summary>
''' <returns></returns>
Public Function GetCloudDataInfo(languageName As String) As DataTable
Dim dtUser As DataTable = New DataTable()
Dim queryStr As String = $"Select a.{languageName} from tbl_multilingual_data a
left join tbl_multilingual b on a.ApplicationID = b.ApplicationID
left join tbl_multilingual_apps c on b.ApplicationID = c.ID
where c.Application = 'C系列配置工具' And b.Language = '{languageName}';"
Console.WriteLine($"获取云端数据信息查询语句:{queryStr}")
Dim sda As MySqlDataAdapter = New MySqlDataAdapter(queryStr, _ConnString.ConnectionString)
Try
sda.Fill(dtUser)
Catch ex As Exception
MsgBox($"######{Now} - MySQL查询错误: {ex.Message} 查询语句: {queryStr}")
End Try
Return dtUser
End Function
#End Region
End Class

View File

@@ -0,0 +1,470 @@
Imports System.Data.SqlClient
Public Class SqlServerDAL
''' <summary>
''' SQL连接
''' </summary>
Public _sqlConn As New SqlConnection
''' <summary>
''' SQL适配器
''' </summary>
Public _sqlDateAdap As New SqlDataAdapter
''' <summary>
''' SQL数据集
''' </summary>
Public _sqlDataSet As DataSet
Public DbConnString As String = "Server=blv-cloud-db.mysql.rds.aliyuncs.com;Port=3307;Database=blv_rcu_db;Uid=blv_rcu;Pwd=fnadiaJDIJ7546;charset=utf8;"
''' <summary>
''' 是否连接数据库
''' </summary>
Public _isConn As Boolean
''' <summary>
''' 初始化
''' </summary>
Sub New()
End Sub
Public Function SelectTable(sqlstr As String) As Dictionary(Of String, String)
Dim dic As New Dictionary(Of String, String)
Dim dt As New DataTable
Try
'Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mssql, DbConnString)
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
db.Open()
dt = db.ExecuteDataTable(sqlstr)
db.Close()
End Using
If Not IsNothingdt Then
For Each dtrow As DataRow In dt.Rows
For i As Integer = 0 To dt.Columns.Count - 1
dic.Add(dt.Columns(i).ColumnName, dtrow.Item(i).ToString)
Next
Next
End If
Catch ex As Exception
End Try
Return dic
End Function
#Region "数据源连接"
''' <summary>
''' 连接数据库
''' </summary>
''' <param name="IPAddress">IP地址或计算名</param>
''' <param name="DataBaseName">数据库名</param>
''' <param name="Conn">安全连接情况真或假若是Windows验证方式则为真若是用户名及密码登录则为假</param>
''' <param name="User">上项为假时,提供用户名</param>
''' <param name="Password">上项为假时,提供密码</param>
Public Sub ConnDataBase(IPAddress As String, DataBaseName As String, Conn As Boolean, User As String, Password As String)
Dim cnStr As String = $"Data Source={IPAddress};Initial Catalog={DataBaseName};Integrated Security={Conn};User ID={User};Password={Password};"
Try
_sqlConn = New SqlConnection(cnStr)
_sqlConn.Open()
_isConn = True
Catch ex As SqlException
_isConn = False
MsgBox($"Error SqlConn! {ex.Message}")
Catch ex As Exception
_isConn = False
MsgBox($"Error Message! {ex.Message}")
End Try
End Sub
#End Region
#Region "多语种信息"
''' <summary>
''' 获取多语种版本信息
''' </summary>
''' <returns></returns>
Public Function GetCloudVersionInfo() As DataTable
Dim dtUser As DataTable = New DataTable()
Dim queryStr As String = $"Select a.Language, a.Version from TBL_Multilingual a
Left Join TBL_MultilingualApps b on a.ApplicationID = b.ID
where b.Application = '{Application.ProductName}'"
_sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
'Console.WriteLine($"查询语种版本:{queryStr}")
_sqlDateAdap.Fill(dtUser)
Return dtUser
End Function
''' <summary>
''' 获取多语种版本信息
''' </summary>
''' <returns></returns>
Public Function GetCloudDataInfo(languageName As String) As DataTable
Dim dtUser As DataTable = New DataTable()
Dim queryStr As String = $"Select a.{languageName} from TBL_MultilingualData a
left join TBL_Multilingual b on a.ApplicationID = b.ApplicationID
left join TBL_MultilingualApps c on b.ApplicationID = c.ID
where c.Application = '{Application.ProductName}' And b.Language = '{languageName}'"
_sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
Console.WriteLine($"查询语种数据:{queryStr}")
_sqlDateAdap.Fill(dtUser)
Return dtUser
End Function
#End Region
#Region "本地_数据源"
''' <summary>
''' SqlServer查询
''' </summary>
''' <param name="TableName">需要查询的数据表名</param>
''' <param name="grd">要显示的表格控件</param>
''' <param name="Conditions">需要查询的条件,默认为空</param>
Public Sub Query(TableName As String, grd As FlexCell.Grid, Optional Conditions As String = "")
_sqlDateAdap = New SqlDataAdapter($"select * from {TableName} {Conditions}", _sqlConn)
_sqlDataSet = New DataSet()
_sqlDateAdap.Fill(_sqlDataSet, $"{TableName}")
Console.WriteLine($"查询语句select * from {TableName} {Conditions}")
grd.DataSource = _sqlDataSet.Tables($"{TableName}")
grd.DisplayRowNumber = True
End Sub
''' <summary>
''' SqlServer查询
''' </summary>
''' <param name="queryCol">要查询的列</param>
''' <param name="TableName">需要查询的数据表名</param>
''' <param name="grd">要显示的表格控件</param>
''' <param name="Conditions">需要查询的条件,默认为空</param>
Public Sub Query(queryCol As String, TableName As String, grd As FlexCell.Grid, Optional Conditions As String = "")
_sqlDateAdap = New SqlDataAdapter($"select {queryCol} from {TableName} {Conditions}", _sqlConn)
_sqlDataSet = New DataSet()
Console.WriteLine($"查询语句select * from {TableName} {Conditions}")
_sqlDateAdap.Fill(_sqlDataSet, $"{TableName}")
grd.DataSource = _sqlDataSet.Tables($"{TableName}")
grd.DisplayRowNumber = True
End Sub
''' <summary>
''' SqlServer查询
''' </summary>
''' <param name="TableName">需要查询的数据表名</param>
''' <param name="Conditions">需要查询的条件,默认为空</param>
Public Function Query(TableName As String, Optional Conditions As String = "") As DataTable
_sqlDateAdap = New SqlDataAdapter($"select * from {TableName} {Conditions}", _sqlConn)
Dim sqlDataSet As DataTable = New DataTable()
Console.WriteLine($"查询语句select * from {TableName} {Conditions}")
_sqlDateAdap.Fill(sqlDataSet)
Return sqlDataSet
End Function
''' <summary>
''' SqlServer查询
''' </summary>
''' <param name="queryCol">需要查询的列</param>
''' <param name="TableName">需要查询的数据表名</param>
''' <param name="Conditions">需要查询的条件,默认为空</param>
''' <returns></returns>
Public Function Query(queryCol As String, TableName As String, Optional Conditions As String = "") As DataTable
_sqlDateAdap = New SqlDataAdapter($"select {queryCol} from {TableName} {Conditions}", _sqlConn)
Dim sqlDataSet As DataTable = New DataTable()
Console.WriteLine($"查询语句select {queryCol} from {TableName} {Conditions}")
_sqlDateAdap.Fill(sqlDataSet)
Return sqlDataSet
End Function
''' <summary>
''' SqlServer添加
''' </summary>
''' <param name="TableName">需要添加的数据表名</param>
''' <param name="grd">要显示的表格控件</param>
''' <param name="Conditions">需要添加的数据条件,(字段1字段2字段3) values(字段1值字段2值字段3值)</param>
''' (条件中若是包含中文则用N'{值}'表示)
Public Sub Add(TableName As String, grd As FlexCell.Grid, Optional Conditions As String = "")
Dim insert As String = $"insert into {TableName} {Conditions}"
_sqlDateAdap = New SqlDataAdapter(insert, _sqlConn)
_sqlDateAdap.Fill(_sqlDataSet, $"{TableName}")
Console.WriteLine($"插入语句:{insert}")
grd.DataSource = _sqlDataSet.Tables($"{TableName}")
grd.DisplayRowNumber = True
End Sub
''' <summary>
''' SqlServer添加
''' </summary>
''' <param name="TableName">需要添加的数据表名</param>
''' <param name="Conditions">需要添加的数据条件,(字段1字段2字段3) values(字段1值字段2值字段3值)</param>
''' (条件中若是包含中文则用N'{值}'表示)
Public Sub Add(TableName As String, Optional Conditions As String = "")
Dim insert As String = $"insert into {TableName} {Conditions}"
_sqlDateAdap = New SqlDataAdapter(insert, _sqlConn)
Dim sqlDataSet As DataTable = New DataTable()
Console.WriteLine($"插入语句:{insert}")
_sqlDateAdap.Fill(sqlDataSet)
End Sub
''' <summary>
''' SqlServer修改
''' </summary>
''' <param name="TableName">需要修改的数据表名</param>
''' <param name="grd">要显示的表格控件</param>
''' <param name="Conditions">需要修改的数据条件Set 字段1 = 修改后的值 Where 字段1 = 修改前的值</param>
''' (条件中若是包含中文则用N'{值}'表示)
Public Sub Modify(TableName As String, grd As FlexCell.Grid, Optional Conditions As String = "")
Dim modify As String = $"update {TableName} {Conditions}"
_sqlDateAdap = New SqlDataAdapter(modify, _sqlConn)
Console.WriteLine($"修改语句:{modify}")
_sqlDateAdap.Fill(_sqlDataSet, $"{TableName}")
grd.DataSource = _sqlDataSet.Tables($"{TableName}")
grd.DisplayRowNumber = True
End Sub
''' <summary>
''' SqlServer删除
''' </summary>
''' <param name="TableName">需要删除的数据表名</param>
''' <param name="grd">要显示的表格控件</param>
''' <param name="Conditions">需要删除的数据条件Where 字段1 = 字段1值 And 字段2 = 字段2值 And 字段3...</param>
''' (条件中若是包含中文则用N'{值}'表示)
Public Sub Delete(TableName As String, grd As FlexCell.Grid, Optional Conditions As String = "")
Dim delete As String = $"delete From {TableName} {Conditions}"
_sqlDateAdap = New SqlDataAdapter(delete, _sqlConn)
Console.WriteLine($"删除语句:{delete}")
_sqlDateAdap.Fill(_sqlDataSet, $"{TableName}")
grd.DataSource = _sqlDataSet.Tables($"{TableName}")
grd.DisplayRowNumber = True
End Sub
#End Region
#Region "登录_数据源"
''' <summary>
''' 获取匹配的用户信息
''' </summary>
''' <param name="userAccount">用户账号</param>
''' <param name="userPassword">用户密码</param>
''' <returns></returns>
Public Function GetUserInfo(userAccount As String, userPassword As String) As DataTable
Dim userInfo As String = UserInfoListDAL.UserInfo
Dim userAuthoes As String = UserInfoListDAL.UserAuthoes
Dim appAutho As String = UserInfoListDAL.AppAutho
Dim authority As String = UserInfoListDAL.Authority
Dim dtUser As DataTable = New DataTable()
Dim queryCol As String = $"Uid, Pwd"
Dim queryStr As String = $"Select a.Id, a.Uid, a.Pwd, a.CreateTime, b.AuthorityId, c.AuthorityName, b.HotelId, d.Name, d.Code, d.GroupId, e.Name from {userInfo} a
left join {userAuthoes} b on a.Id = b.UserId
left join {authority} c on b.AuthorityId = c.Id
left join dbo.Hotels d on b.HotelId = d.Id
left join dbo.HotelGroups e on d.GroupId = e.Id
left join dbo.AppAutho aa on c.id = aa.AuthorityId
where a.Uid = '{userAccount}' and b.AuthotypeId <> '1' and aa.AppId = '1'"
_sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
'_sqlDateAdap = New SqlDataAdapter($"select {queryCol} from {userInfo} Where Uid = '{userAccount}'", _sqlConn)
Console.WriteLine($"查询语句:{queryStr}")
_sqlDateAdap.Fill(dtUser)
Return dtUser
End Function
#End Region
#Region "后台_数据源"
'''' <summary>
'''' 获取后台数据源的房型
'''' </summary>
'''' <param name="projectNumber">项目编号</param>
'''' <returns></returns>
'Public Function GetProjectRoomTypeInfo(projectNumber As String) As DataTable
' Dim dtUser As DataTable = New DataTable()
' Dim queryStr As String = $"select a.ID, a.Code, a.Name, b.HostName, b.ID from tb_Sys_Hotels a
' left join dbo.tb_RoomType b
' on b.HotelID = a.ID
' where a.Code = '{projectNumber}'"
' _sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
' Console.WriteLine($"查询语句:{queryStr}")
' _sqlDateAdap.Fill(dtUser)
' Return dtUser
'End Function
'''' <summary>
'''' 获取后台数据源的房号
'''' </summary>
'''' <param name="projectNumber">项目编号</param>
'''' <param name="roomType">房型</param>
'''' <returns></returns>
'Public Function GetProjectRoomNumberInfo(projectNumber As String, roomType As String) As DataTable
' Dim dtUser As DataTable = New DataTable()
' Dim queryStr As String
' If roomType = $"全部" Then
' queryStr = $"select a.HotelID, b.Code, b.Name, c.HostName, a.RoomNumber, a.ID, c.ID from tb_Hosts a
' left join tb_Sys_Hotels b on b.ID = a.HotelID
' left join tb_RoomType c on c.ID = a.RoomTypeID
' where b.code = '{projectNumber}' and a.IsSyncRoomNumber = '1'
' order by a.RoomNumber asc"
' Else
' queryStr = $"select a.HotelID, b.Code, b.Name, c.HostName, a.RoomNumber, a.ID, c.ID from tb_Hosts a
' left join tb_Sys_Hotels b on b.ID = a.HotelID
' left join tb_RoomType c on c.ID = a.RoomTypeID
' where b.code = '{projectNumber}' and HostName = '{roomType}' and a.IsSyncRoomNumber = '1'
' order by a.RoomNumber asc"
' End If
' _sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
' Console.WriteLine($"查询语句:{queryStr}")
' _sqlDateAdap.Fill(dtUser)
' Return dtUser
'End Function
'''' <summary>
'''' 获取后台数据源的房型
'''' 已知项目编号和房号
'''' </summary>
'''' <param name="projectNumber">项目编号</param>
'''' <param name="roomNumber">房号</param>
'''' <returns></returns>
'Public Function GetProjectRoomNumberTypeInfo(projectNumber As String, roomNumber As String) As DataTable
' Dim dtUser As DataTable = New DataTable()
' Dim queryStr As String = $"select a.HotelID, b.Code, b.Name, c.HostName, a.RoomNumber, a.RoomTypeID from tb_Hosts a
' left join tb_Sys_Hotels b on b.ID = a.HotelID
' left join tb_RoomType c on c.ID = a.RoomTypeID
' where b.code = '{projectNumber}' and a.RoomNumber = '{roomNumber}' and a.IsSyncRoomNumber = '1'
' order by a.RoomNumber asc"
' _sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
' Console.WriteLine($"房号查询语句:{queryStr}")
' _sqlDateAdap.Fill(dtUser)
' Return dtUser
'End Function
'''' <summary>
'''' 获取后台数据源的房号
'''' </summary>
'''' <param name="projectNumber">项目编号</param>
'''' <returns></returns>
'Public Function GetMatchingInfo(projectNumber As String) As DataTable
' Dim dtUser As DataTable = New DataTable()
' Dim queryStr As String = $"select a.HotelID, b.Code, b.Name, a.ID, a.RoomNumber, c.ID, c.HostName, a.MAC from tb_Hosts a
' left join tb_Sys_Hotels b on b.ID = a.HotelID
' left join tb_RoomType c on c.ID = a.RoomTypeID
' where b.code = '{projectNumber}' and a.IsSyncRoomNumber = '1'
' order by a.RoomNumber asc"
' _sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
' Console.WriteLine($"查询语句:{queryStr}")
' _sqlDateAdap.Fill(dtUser)
' Return dtUser
'End Function
'''' <summary>
'''' 获取后台数据源的批量数据
'''' 已知项目编码
'''' </summary>
'''' <param name="projectNumber">项目编号</param>
'''' <returns></returns>
'Public Function GetBatchDataInfo(projectNumber As String) As DataTable
' Dim dtUser As DataTable = New DataTable()
' Dim queryStr As String = $"select a.RoomNumber, a.MAC, a.IP, a.Remark, a.ID, a.RoomTypeID, a.Port, a.Gateway, a.SubnetMask, a.DNS, a.LockStatus, a.AuthorizedHours from tb_Hosts a
' left join tb_Sys_Hotels b on a.HotelID = b.ID
' where b.Code = '{projectNumber}';"
' _sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
' Console.WriteLine($"批量数据查询结果:{queryStr}")
' _sqlDateAdap.Fill(dtUser)
' Return dtUser
'End Function
#End Region
#Region "更新绑定信息"
'''' <summary>
'''' 更新绑定信息
'''' </summary>
'''' <param name="projectNumber">项目编号</param>
'''' <param name="roomNumber">房号</param>
'''' <param name="mac">MAC</param>
'''' <returns></returns>
'Public Function UpdateMACInfo(projectNumber As String, roomNumber As String, mac As String) As Boolean
' Dim count As Integer = 0
' Dim dtUser As DataTable = New DataTable()
' Dim updateStr As String = $"update dbo.tb_Hosts set MAC = '{mac}' where RoomNumber='{roomNumber}' and HotelID=(select ID from tb_Sys_Hotels where Code='{projectNumber}');"
' Console.WriteLine($"更新语句:{updateStr}")
' _sqlDateAdap = New SqlDataAdapter(updateStr, _sqlConn)
' _sqlDateAdap.Fill(dtUser)
' Try
' count = _sqlDateAdap.Update(dtUser)
' Catch ex As Exception
' Return False
' End Try
' Return True
'End Function
#End Region
#Region "关闭连接"
''' <summary>
''' 关闭连接
''' </summary>
Public Sub ConnClose()
If _sqlConn IsNot Nothing AndAlso _sqlConn.State <> ConnectionState.Closed Then
_sqlConn.Close()
End If
End Sub
#End Region
End Class

View File

@@ -0,0 +1,55 @@
Public Class UserInfoListDAL
Enum ColNamesEnum
''' <summary>
''' 用户Uid唯一索引_用户名
''' </summary>
UserID
''' <summary>
''' 用户密码
''' </summary>
Password
''' <summary>
''' 创建日期
''' </summary>
CreateTime
''' <summary>
''' 是否有效
''' </summary>
IsValid
End Enum
''' <summary>
''' C系列配置工具权限所属域ID
''' </summary>
Public Shared Property _appAuthorityId As Integer = 1 'C系列配置工具
''' <summary>
''' 用户表名称
''' </summary>
''' <returns></returns>
Public Shared Property UserInfo() As String = "UserInfo"
''' <summary>
''' 用户表-权限关联表名称
''' </summary>
''' <returns></returns>
Public Shared Property UserAuthoes() As String = "UserAuthoes"
''' <summary>
''' 域-权限关联表名称
''' </summary>
''' <returns></returns>
Public Shared Property AppAutho() As String = "AppAutho"
''' <summary>
''' 权限表名称
''' </summary>
''' <returns></returns>
Public Shared Property Authority() As String = "Authority"
End Class