mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-02-16 20:13:49 +00:00
Refactor UserAccount repository methods and add stored procedures for user account management
This commit is contained in:
@@ -18,239 +18,34 @@ namespace DataAccessLayer
|
||||
?? throw new InvalidOperationException(
|
||||
"The connection string is not set in the environment variables."
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void Add(UserAccount userAccount)
|
||||
{
|
||||
const string query =
|
||||
@"INSERT INTO UserAccount (UserAccountID, Username, FirstName, LastName, Email, CreatedAt, UpdatedAt, DateOfBirth, Timer)
|
||||
VALUES (@UserAccountID, @Username, @FirstName, @LastName, @Email, @CreatedAt, @UpdatedAt, @DateOfBirth, @Timer);";
|
||||
|
||||
using (var connection = new SqlConnection(_connectionString))
|
||||
using (var command = new SqlCommand(query, connection))
|
||||
{
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@UserAccountID",
|
||||
userAccount.UserAccountID
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@Username",
|
||||
userAccount.Username
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@FirstName",
|
||||
userAccount.FirstName
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@LastName",
|
||||
userAccount.LastName
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@Email",
|
||||
userAccount.Email
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@CreatedAt",
|
||||
userAccount.CreatedAt
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@UpdatedAt",
|
||||
userAccount.UpdatedAt ?? (object)DBNull.Value
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@DateOfBirth",
|
||||
userAccount.DateOfBirth
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@Timer",
|
||||
userAccount.Timer ?? (object)DBNull.Value
|
||||
);
|
||||
|
||||
connection.Open();
|
||||
_ = command.ExecuteNonQuery();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public UserAccount? GetById(Guid id)
|
||||
{
|
||||
const string query =
|
||||
"SELECT * FROM UserAccount WHERE UserAccountID = @UserAccountID;";
|
||||
|
||||
using (var connection = new SqlConnection(_connectionString))
|
||||
using (var command = new SqlCommand(query, connection))
|
||||
{
|
||||
_ = command.Parameters.AddWithValue("@UserAccountID", id);
|
||||
|
||||
connection.Open();
|
||||
using (var reader = command.ExecuteReader())
|
||||
{
|
||||
if (reader.Read())
|
||||
{
|
||||
return new UserAccount
|
||||
{
|
||||
UserAccountID = reader.GetGuid(
|
||||
reader.GetOrdinal("UserAccountID")
|
||||
),
|
||||
Username = reader.GetString(
|
||||
reader.GetOrdinal("Username")
|
||||
),
|
||||
FirstName = reader.GetString(
|
||||
reader.GetOrdinal("FirstName")
|
||||
),
|
||||
LastName = reader.GetString(
|
||||
reader.GetOrdinal("LastName")
|
||||
),
|
||||
Email = reader.GetString(
|
||||
reader.GetOrdinal("Email")
|
||||
),
|
||||
CreatedAt = reader.GetDateTime(
|
||||
reader.GetOrdinal("CreatedAt")
|
||||
),
|
||||
UpdatedAt = reader.IsDBNull(
|
||||
reader.GetOrdinal("UpdatedAt")
|
||||
)
|
||||
? null
|
||||
: reader.GetDateTime(
|
||||
reader.GetOrdinal("UpdatedAt")
|
||||
),
|
||||
DateOfBirth = reader.GetDateTime(
|
||||
reader.GetOrdinal("DateOfBirth")
|
||||
),
|
||||
Timer = reader.IsDBNull(reader.GetOrdinal("Timer"))
|
||||
? null
|
||||
: (byte[])reader["Timer"],
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void Update(UserAccount userAccount)
|
||||
{
|
||||
const string query =
|
||||
@"UPDATE UserAccount
|
||||
SET Username = @Username, FirstName = @FirstName, LastName = @LastName, Email = @Email, CreatedAt = @CreatedAt, UpdatedAt = @UpdatedAt, DateOfBirth = @DateOfBirth, Timer = @Timer
|
||||
WHERE UserAccountID = @UserAccountID;";
|
||||
|
||||
using (var connection = new SqlConnection(_connectionString))
|
||||
using (var command = new SqlCommand(query, connection))
|
||||
{
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@UserAccountID",
|
||||
userAccount.UserAccountID
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@Username",
|
||||
userAccount.Username
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@FirstName",
|
||||
userAccount.FirstName
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@LastName",
|
||||
userAccount.LastName
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@Email",
|
||||
userAccount.Email
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@CreatedAt",
|
||||
userAccount.CreatedAt
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@UpdatedAt",
|
||||
userAccount.UpdatedAt ?? (object)DBNull.Value
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@DateOfBirth",
|
||||
userAccount.DateOfBirth
|
||||
);
|
||||
_ = command.Parameters.AddWithValue(
|
||||
"@Timer",
|
||||
userAccount.Timer ?? (object)DBNull.Value
|
||||
);
|
||||
|
||||
connection.Open();
|
||||
_ = command.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
|
||||
public void Delete(Guid id)
|
||||
{
|
||||
const string query =
|
||||
"DELETE FROM UserAccount WHERE UserAccountID = @UserAccountID;";
|
||||
|
||||
using (var connection = new SqlConnection(_connectionString))
|
||||
using (var command = new SqlCommand(query, connection))
|
||||
{
|
||||
_ = command.Parameters.AddWithValue("@UserAccountID", id);
|
||||
|
||||
connection.Open();
|
||||
_ = command.ExecuteNonQuery();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public IEnumerable<UserAccount> GetAll()
|
||||
{
|
||||
const string query = "SELECT * FROM UserAccount;";
|
||||
|
||||
var userAccounts = new List<UserAccount>();
|
||||
|
||||
using (var connection = new SqlConnection(_connectionString))
|
||||
using (var command = new SqlCommand(query, connection))
|
||||
{
|
||||
connection.Open();
|
||||
using (var reader = command.ExecuteReader())
|
||||
{
|
||||
while (reader.Read())
|
||||
{
|
||||
var userAccount = new UserAccount
|
||||
{
|
||||
UserAccountID = reader.GetGuid(
|
||||
reader.GetOrdinal("UserAccountID")
|
||||
),
|
||||
Username = reader.GetString(
|
||||
reader.GetOrdinal("Username")
|
||||
),
|
||||
FirstName = reader.GetString(
|
||||
reader.GetOrdinal("FirstName")
|
||||
),
|
||||
LastName = reader.GetString(
|
||||
reader.GetOrdinal("LastName")
|
||||
),
|
||||
Email = reader.GetString(
|
||||
reader.GetOrdinal("Email")
|
||||
),
|
||||
CreatedAt = reader.GetDateTime(
|
||||
reader.GetOrdinal("CreatedAt")
|
||||
),
|
||||
UpdatedAt = reader.IsDBNull(
|
||||
reader.GetOrdinal("UpdatedAt")
|
||||
)
|
||||
? null
|
||||
: reader.GetDateTime(
|
||||
reader.GetOrdinal("UpdatedAt")
|
||||
),
|
||||
DateOfBirth = reader.GetDateTime(
|
||||
reader.GetOrdinal("DateOfBirth")
|
||||
),
|
||||
Timer = reader.IsDBNull(reader.GetOrdinal("Timer"))
|
||||
? null
|
||||
: (byte[])reader["Timer"],
|
||||
};
|
||||
|
||||
userAccounts.Add(userAccount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return userAccounts;
|
||||
return new List<UserAccount>
|
||||
{
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user