Добавьте файлы проекта.

This commit is contained in:
2026-01-07 21:28:32 +03:00
parent 02603e60ad
commit fc994edf71
15 changed files with 531 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
using Lattice.Core.Abstractions;
namespace Lattice.Core.Context;
/// <summary>
/// Реализация сервиса управления контекстом приложения.
/// </summary>
public class ContextManager : IContextService
{
private string _currentContext = "Common";
/// <inheritdoc/>
public string CurrentContext => _currentContext;
/// <inheritdoc/>
public event EventHandler<string>? ContextChanged;
/// <inheritdoc/>
public void SetContext(string contextGroup)
{
if (string.IsNullOrWhiteSpace(contextGroup)) contextGroup = "Common";
if (_currentContext != contextGroup)
{
_currentContext = contextGroup;
ContextChanged?.Invoke(this, contextGroup);
}
}
/// <inheritdoc/>
public bool IsCommandVisible(string commandId, string commandContext)
{
// Базовая логика: команда видима, если её контекст совпадает с текущим
// или если команда помечена как общая ("Common" или "Global").
return commandContext == "Common" ||
commandContext == "Global" ||
commandContext == _currentContext;
}
}