asp.net访问word的类

发表于:2007-06-30来源:作者:点击数: 标签:
Imports System Imports System.Data Imports System.Configuration Public Class ttuser @#**************************************************************************** @# @# TTUser Class @# @# The TTUser class represents a Time Tracker user, inc
Imports System
Imports System.Data
Imports System.Configuration
Public Class ttuser
@#****************************************************************************
@#
@# TTUser Class
@#
@# The TTUser class represents a Time Tracker user, including their unique
@# userID and UserName. Custom role information retrieved from the database
@# is also stored in the TTUser class.
@#
@#****************************************************************************


Public Const UserRoleNone As String = "0"
Public Const UserRoleAdministrator As String = "1"
Public Const UserRoleProjectManager As String = "2"
Public Const UserRoleConsultant As String = "3"
Public Const UserRoleAdminPMgr As String = UserRoleAdministrator + "," + UserRoleProjectManager
Public Const UserRolePMgrConsultant As String = UserRoleProjectManager + "," + UserRoleConsultant

Private _displayName As String = String.Empty
Private _firstName As String = String.Empty
Private _lastName As String = String.Empty
Private _password As String = String.Empty
Private _role As String = UserRoleNone
Private _roleName As String
Private _userID As Integer
Private _userName As String

Public Sub New()
End Sub @#New

Public Sub New(ByVal UserName As String)
_userName = UserName
End Sub @#New

Public Sub New(ByVal UserID As Integer, ByVal UserName As String, ByVal Name As String, ByVal Role As String)
_userID = UserID
_userName = UserName
_displayName = Name
_role = Role
End Sub @#New

Public Property DisplayName() As String
Get
Return _displayName
End Get
Set(ByVal Value As String)
_displayName = Value
End Set
End Property

Public Property FirstName() As String
Get
Return _firstName
End Get
Set(ByVal Value As String)
_firstName = Value
End Set
End Property

Public Property LastName() As String
Get
Return _lastName
End Get
Set(ByVal Value As String)
_lastName = Value
End Set
End Property

Public Property Name() As String
Get
Return _displayName
End Get
Set(ByVal Value As String)
_displayName = Value
End Set
End Property

Public Property Password() As String
Get
Return _password
End Get
Set(ByVal Value As String)
_password = Value
End Set
End Property

Public Property Role() As String
Get
Return _role
End Get
Set(ByVal Value As String)
_role = Value
End Set
End Property

Public Property RoleName() As String
Get
Return _roleName
End Get
Set(ByVal Value As String)
_roleName = Value
End Set
End Property

Public Property UserID() As Integer
Get
Return _userID
End Get
Set(ByVal Value As Integer)
_userID = Value
End Set
End Property

Public Property UserName() As String
Get
Return _userName
End Get
Set(ByVal Value As String)
_userName = Value
End Set
End Property

@#*********************************************************************
@#
@# GetAllUsers Static Method
@# Retrieves a list of all users.
@#
@#*********************************************************************

Public Shared Function GetAllUsers(ByVal userID As Integer) As UsersCollection
Return GetUsers(userID, ttuser.UserRoleAdministrator)
End Function @#GetAllUsers

@#*********************************************************************
@#
@# GetUsers Static Method
@# Retrieves a list of users based on the specified userID and role.
@# The list returned is restricted by role. For instance, users with
@# the role of Administrator can see all users, while users with the
@# role of Consultant can only see themselves.
@#
@#*********************************************************************

Public Shared Function GetUsers(ByVal userID As Integer, ByVal role As String) As UsersCollection
Dim firstName As String = String.Empty
Dim lastName As String = String.Empty

Dim ds As DataSet = SqlHelper.ExecuteDataset(ConfigurationSettings.AppSettings(Global.CfgKeyConnString), "TT_ListUsers", userID, Convert.ToInt32(role))
Dim users As New UsersCollection

@# Separate Data into a collection of Users.
Dim r As DataRow
For Each r In ds.Tables(0).Rows
Dim usr As New ttuser
usr.UserName = r("UserName").ToString()
usr.Role = r("RoleID").ToString()
usr.RoleName = r("RoleName").ToString()
usr.UserID = Convert.ToInt32(r("UserID"))
usr.Name = GetDisplayName(usr.UserName, firstName, lastName)
usr.FirstName = firstName
usr.LastName = lastName
users.Add(usr)
Next r
Return users
End Function @#GetUsers

@#*********************************************************************
@#
@# GetDisplayName static method
@# Gets the user@#s first and last name from the specified TTUser aclearcase/" target="_blank" >ccount source, which is
@# set in Web.confg.
@#
@#*********************************************************************

Public Shared Function GetDisplayName(ByVal userName As String, ByRef firstName As String, ByRef lastName As String) As String
Dim displayName As String = String.Empty
Dim dbName As String = String.Empty

@# The DirectoryHelper class will attempt to get the user@#s first
@# and last name from the specified account source.
DirectoryHelper.FindUser(userName, firstName, lastName)

@# If the first and last name could not be retrieved, return the TTUserName.
If firstName.Length > 0 Or lastName.Length > 0 Then
displayName = firstName + " " + lastName
Else
dbName = GetDisplayNameFromDB(userName)
If Not dbName Is String.Empty Then
displayName = dbName
Else
displayName = userName
End If
End If
Return displayName
End Function @#GetDisplayName

Public Shared Function GetDisplayNameFromDB(ByVal userName As String) As String
Dim displayName As String = String.Empty
displayName = CStr(SqlHelper.ExecuteScalar(ConfigurationSettings.AppSettings(Global.CfgKeyConnString), "TT_GetUserDisplayName", userName))
Return displayName
End Function

@#*********************************************************************
@#
@# ListManagers Static Method
@# Retrieves a list of users with the role of Project Manager.
@#
@#*********************************************************************

Public Shared Function ListManagers() As UsersCollection
Dim firstName As String = String.Empty
Dim lastName As String = String.Empty

Dim ds As DataSet = SqlHelper.ExecuteDataset(ConfigurationSettings.AppSettings(Global.CfgKeyConnString), CommandType.StoredProcedure, "TT_ListManagers")
Dim managersArray As New UsersCollection

@# Separate Data into a list of collections.
Dim r As DataRow
For Each r In ds.Tables(0).Rows
Dim usr As New ttuser
usr.UserName = r("UserName").ToString()
usr.Role = r("RoleID").ToString()
usr.UserID = Convert.ToInt32(r("UserID"))
usr.Name = GetDisplayName(usr.UserName, firstName, lastName)
usr.FirstName = firstName
usr.LastName = lastName
managersArray.Add(usr)
Next r
Return managersArray
End Function @#ListManagers

@#*********************************************************************
@#
@# Remove static method
@# Removes a user from database
@#
@#*********************************************************************

Public Shared Sub Remove(ByVal userID As Integer)
SqlHelper.ExecuteNonQuery(ConfigurationSettings.AppSettings(Global.CfgKeyConnString), "TT_DeleteUser", userID)
End Sub @#Remove

@#*********************************************************************
@#
@# Load method
@# Retrieve user information from the data access layer
@# returns True if user information is loaded successfully, false otherwise.
@#
@#*********************************************************************

Public Function Load() As Boolean
@# Get the user@#s information from the database
Dim ds As DataSet = SqlHelper.ExecuteDataset(ConfigurationSettings.AppSettings(Global.CfgKeyConnString), "TT_GetUserByUserName", _userName)

If ds.Tables(0).Rows.Count < 1 Then
Return False
End If
Dim dr As DataRow = ds.Tables(0).Rows(0)
_userID = Convert.ToInt32(dr("UserID"))
_userName = dr("UserName").ToString()
_role = dr("RoleID").ToString()
_password = IIf(dr("Password") Is DBNull.Value, "", dr("Password"))
_displayName = GetDisplayName(_userName, _firstName, _lastName)

Return True
End Function @#Load

@#*********************************************************************
@#
@# Save method
@# Add or update user information in the database depending on the TT_UserID.
@# Returns True if saved successfully, false otherwise.
@#
@#*********************************************************************

Public Overloads Function Save() As Boolean
Dim isUserFound As Boolean = False
Dim isUserActiveManager As Boolean = True
Return Save(False, isUserFound, isUserActiveManager)
End Function @#Save

@#*********************************************************************
@#
@# Save method
@# Add or update user information in the database depending on the TTUserID.
@# Returns True if saved successfully, false otherwise.
@#
@#*********************************************************************

Public Overloads Function Save(ByVal checkUsername As Boolean, ByRef isUserFound As Boolean, ByRef isUserActiveManager As Boolean) As Boolean
@# Determines whether object needs update or to be inserted.
If _userID = 0 Then
Return Insert(checkUsername, isUserFound)
Else
If _userID > 0 Then
Return Update(isUserActiveManager)
Else
_userID = 0
Return False
End If
End If
End Function @#Save

Private Function Insert(ByVal checkUsername As Boolean, ByRef isUserFound As Boolean) As Boolean
Dim firstName As String = String.Empty
Dim lastName As String = String.Empty
isUserFound = False

If ConfigurationSettings.AppSettings(Global.CfgKeyUserAcctSource) <> "None" Then
@# Check to see if the user is in the NT SAM or Active Directory before inserting them
@# into the Time Tracker database. If a first or last name is returned, the user exists and
@# can be inserted into the Time Tracker database.
If checkUsername Then
ttuser.GetDisplayName(_userName, firstName, lastName)
isUserFound = firstName <> String.Empty Or lastName <> String.Empty
End If
Else
checkUsername = False
isUserFound = True
End If


If checkUsername And isUserFound Or Not checkUsername Then
_userID = Convert.ToInt32(SqlHelper.ExecuteScalar(ConfigurationSettings.AppSettings(Global.CfgKeyConnString), "TT_AddUser", _userName, _password, _displayName, Convert.ToInt32(_role)))
isUserFound = True
End If
Return _userID > 0
End Function @#Insert

Private Function Update(ByRef isUserActiveManger As Boolean) As Boolean
@# if new user role is a consultant, check if user is a active manager of one or more project. if so, no update is applied
If _role = UserRoleConsultant Then
If Convert.ToInt32(SqlHelper.ExecuteScalar(ConfigurationSettings.AppSettings(Global.CfgKeyConnString), "TT_GetManagerProjectCount", _userID)) > 0 Then
isUserActiveManger = True
Return False
Else
isUserActiveManger = False
End If
End If
Return 0 < Convert.ToInt32(SqlHelper.ExecuteScalar(ConfigurationSettings.AppSettings(Global.CfgKeyConnString), "TT_UpdateUser", _userID, _userName, _password, _displayName, Convert.ToInt32(_role)))
End Function @#Update

@#*********************************************************************
@#
@# UsersDB.Login() Method
@#
@# The Login method validates a email/password pair against credentials
@# stored in the users database. If the email/password pair is valid,
@# the method returns user@#s name.
@#
@# Other relevant sources:
@# + UserLogin Stored Procedure
@#
@#*********************************************************************

Public Function Login(ByVal email As String, ByVal password As String) As String

Dim userName As String
userName = CStr(SqlHelper.ExecuteScalar(ConfigurationSettings.AppSettings(Global.CfgKeyConnString), "TT_UserLogin", email, password))

If Not userName Is Nothing Or userName Is "" Then
Return userName
Else
Return String.Empty
End If

End Function

End Class



原文转自:http://www.ltesting.net