-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathWorkspaceConsole.cs
More file actions
38 lines (34 loc) · 1.17 KB
/
WorkspaceConsole.cs
File metadata and controls
38 lines (34 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.Collections.Generic;
namespace COMP_3951_BlockForge_TechPro
{
/// <summary>
/// BlockForge WorkspaceConsole
/// Author: Andre Di Lascio
/// Date: Mar 25 2026
/// Source: Written with the help of AI.
/// </summary>
public class WorkspaceConsole : IConsoleMessageSink
{
private readonly List<ConsoleMessage> _messages = new();
/// <summary>
/// Gets the messages currently stored in the workspace console.
/// </summary>
public IReadOnlyList<ConsoleMessage> Messages => _messages;
/// <summary>
/// Appends a new message to the workspace console.
/// </summary>
/// <param name="message">The message to append.</param>
/// <exception cref="ArgumentException">
/// Thrown when the message text is null, empty, or whitespace.
/// </exception>
public void Append(ConsoleMessage message)
{
if (string.IsNullOrWhiteSpace(message.Text))
{
throw new ArgumentException("Console messages must contain text.", nameof(message));
}
_messages.Add(message);
}
}
}