using CommunityToolkit.Mvvm.ComponentModel;
using NewLife.Studio.Core.DTOs;
using NewLife.Studio.Data;
using NewLife.Studio.Store;
using NewLife.Log;
namespace NewLife.Studio.Modules.DataStudio.ViewModels;
/// <summary>数据管理主 ViewModel</summary>
public partial class DataStudioViewModel : ObservableObject
{
public ConnectionListViewModel ConnectionList { get; }
public ObjectTreeViewModel ObjectTree { get; }
public SqlEditorViewModel SqlEditor { get; }
[ObservableProperty]
private IDbSession? _activeSession;
public DataStudioViewModel(IStoreService storeService, IDataProvider dataProvider)
{
ConnectionList = new ConnectionListViewModel(storeService, dataProvider);
ObjectTree = new ObjectTreeViewModel();
SqlEditor = new SqlEditorViewModel(storeService);
ConnectionList.ConnectionOpened += OnConnectionOpened;
}
private void OnConnectionOpened(object? sender, IDbSession session)
{
ActiveSession = session;
ObjectTree.SetSession(session);
SqlEditor.SetSession(session);
XTrace.WriteLine($"DataStudio: Connection opened {session.SessionId}");
}
}
|