Add project files.

This commit is contained in:
2025-08-18 17:11:43 +03:30
parent 807dc263be
commit e5eb10d604
3943 changed files with 223719 additions and 0 deletions
@@ -0,0 +1,46 @@
using Elsa.Common;
using Microsoft.Extensions.Logging;
namespace Elsa.Alterations.Core.Models;
/// <summary>
/// Represents a log of alterations.
/// </summary>
public class AlterationLog
{
private readonly ISystemClock _systemClock;
private readonly List<AlterationLogEntry> _logEntries = new();
/// <summary>
/// Initializes a new instance of the <see cref="AlterationLog"/> class.
/// </summary>
public AlterationLog(ISystemClock systemClock)
{
_systemClock = systemClock;
}
/// <summary>
/// Gets the log entries.
/// </summary>
public IReadOnlyCollection<AlterationLogEntry> LogEntries => _logEntries.ToList().AsReadOnly();
/// <summary>
/// Adds a log entry.
/// </summary>
/// <param name="message">The message.</param>
/// <param name="logLevel">The log level.</param>
/// <param name="eventName">The event that generated the log entry.</param>
public void Add(string message, LogLevel logLevel = LogLevel.Information, string? eventName = null)
{
var entry = new AlterationLogEntry(message, logLevel, _systemClock.UtcNow, eventName);
_logEntries.Add(entry);
}
/// <summary>
/// Adds a set of log entries.
/// </summary>
/// <param name="entries"></param>
public void AddRange(IEnumerable<AlterationLogEntry> entries) => _logEntries.AddRange(entries);
}