Code Cleanup
This commit is contained in:
@@ -20,10 +20,16 @@ public partial class Workspace : IAsyncDisposable
|
||||
}
|
||||
|
||||
[JSInvokable]
|
||||
public Task OnStateEventReceived(CampaignStateSnapshot state) => Live.OnStateEventReceivedAsync(state);
|
||||
public Task OnStateEventReceived(CampaignStateSnapshot state)
|
||||
{
|
||||
return Live.OnStateEventReceivedAsync(state);
|
||||
}
|
||||
|
||||
[JSInvokable]
|
||||
public Task OnConnectionStateChanged(string state) => Live.OnConnectionStateChangedAsync(state);
|
||||
public Task OnConnectionStateChanged(string state)
|
||||
{
|
||||
return Live.OnConnectionStateChangedAsync(state);
|
||||
}
|
||||
|
||||
public async ValueTask DisposeAsync()
|
||||
{
|
||||
@@ -31,13 +37,25 @@ public partial class Workspace : IAsyncDisposable
|
||||
DotNetRef?.Dispose();
|
||||
}
|
||||
|
||||
private bool CanEditCharacter(CharacterSummary character) => Campaigns.CanEditCharacter(character);
|
||||
private bool CanEditCharacter(CharacterSummary character)
|
||||
{
|
||||
return Campaigns.CanEditCharacter(character);
|
||||
}
|
||||
|
||||
private void ClearAuthenticatedState() => Session.ClearAuthenticatedState();
|
||||
private void ClearAuthenticatedState()
|
||||
{
|
||||
Session.ClearAuthenticatedState();
|
||||
}
|
||||
|
||||
private Task EnsureAdminUsersLoadedAsync() => Admin.EnsureAdminUsersLoadedAsync();
|
||||
private Task EnsureAdminUsersLoadedAsync()
|
||||
{
|
||||
return Admin.EnsureAdminUsersLoadedAsync();
|
||||
}
|
||||
|
||||
private Task StopStateEventsAsync() => Live.StopStateEventsAsync();
|
||||
private Task StopStateEventsAsync()
|
||||
{
|
||||
return Live.StopStateEventsAsync();
|
||||
}
|
||||
|
||||
private async Task StartStateEventsCoreAsync(Guid campaignId)
|
||||
{
|
||||
@@ -86,76 +104,19 @@ public partial class Workspace : IAsyncDisposable
|
||||
|
||||
private WorkspaceState State { get; } = new();
|
||||
|
||||
private WorkspaceCampaignScopeCoordinator Scope => m_Scope ??= new(
|
||||
State,
|
||||
Feedback,
|
||||
JS,
|
||||
WorkspaceQuery,
|
||||
Play.EnsureSelectedCharacterActiveAsync,
|
||||
Play.RefreshSelectedCharacterSheetAsync,
|
||||
Play.RefreshCampaignLogAsync,
|
||||
Play.ResetCampaignLogDetailState,
|
||||
Play.ResetCampaignStateTracking,
|
||||
ClearAuthenticatedState,
|
||||
StopStateEventsAsync,
|
||||
message => LoggedOut.InvokeAsync(message));
|
||||
private WorkspaceCampaignScopeCoordinator Scope => m_Scope ??= new(State, Feedback, JS, WorkspaceQuery, Play.EnsureSelectedCharacterActiveAsync, Play.RefreshSelectedCharacterSheetAsync, Play.RefreshCampaignLogAsync, Play.ResetCampaignLogDetailState, Play.ResetCampaignStateTracking, ClearAuthenticatedState, StopStateEventsAsync, message => LoggedOut.InvokeAsync(message));
|
||||
|
||||
private WorkspaceLiveStateController Live => m_Live ??= new(
|
||||
State,
|
||||
Feedback,
|
||||
StartStateEventsCoreAsync,
|
||||
StopStateEventsCoreAsync,
|
||||
Scope.RefreshCampaignRosterAsync,
|
||||
Play.RefreshSelectedCharacterSheetAsync,
|
||||
Play.RefreshCampaignLogAsync,
|
||||
() => InvokeAsync(StateHasChanged));
|
||||
private WorkspaceLiveStateController Live => m_Live ??= new(State, Feedback, StartStateEventsCoreAsync, StopStateEventsCoreAsync, Scope.RefreshCampaignRosterAsync, Play.RefreshSelectedCharacterSheetAsync, Play.RefreshCampaignLogAsync, () => InvokeAsync(StateHasChanged));
|
||||
|
||||
private WorkspacePlayCoordinator Play => m_Play ??= new(
|
||||
State,
|
||||
Feedback,
|
||||
ApiClient,
|
||||
WorkspaceQuery,
|
||||
CanEditCharacter,
|
||||
() => InvokeAsync(StateHasChanged));
|
||||
private WorkspacePlayCoordinator Play => m_Play ??= new(State, Feedback, ApiClient, WorkspaceQuery, CanEditCharacter, () => InvokeAsync(StateHasChanged));
|
||||
|
||||
private WorkspaceCampaignCoordinator Campaigns => m_Campaigns ??= new(
|
||||
State,
|
||||
Feedback,
|
||||
JS,
|
||||
ApiClient,
|
||||
Session.LoadKnownUsernamesAsync,
|
||||
Scope.ReloadCampaignsAsync,
|
||||
Scope.ReloadCharacterCampaignOptionsAsync,
|
||||
Scope.RefreshCampaignScopeAsync,
|
||||
Live.SyncStateEventsAsync);
|
||||
private WorkspaceCampaignCoordinator Campaigns => m_Campaigns ??= new(State, Feedback, JS, ApiClient, Session.LoadKnownUsernamesAsync, Scope.ReloadCampaignsAsync, Scope.ReloadCharacterCampaignOptionsAsync, Scope.RefreshCampaignScopeAsync, Live.SyncStateEventsAsync);
|
||||
|
||||
private WorkspaceAdminCoordinator Admin => m_Admin ??= new(
|
||||
State,
|
||||
Feedback,
|
||||
JS,
|
||||
ApiClient,
|
||||
WorkspaceQuery,
|
||||
ClearAuthenticatedState,
|
||||
StopStateEventsAsync,
|
||||
message => LoggedOut.InvokeAsync(message));
|
||||
private WorkspaceAdminCoordinator Admin => m_Admin ??= new(State, Feedback, JS, ApiClient, WorkspaceQuery, ClearAuthenticatedState, StopStateEventsAsync, message => LoggedOut.InvokeAsync(message));
|
||||
|
||||
private WorkspaceFeedbackService Feedback => m_Feedback ??= new(State, () => InvokeAsync(StateHasChanged));
|
||||
|
||||
private WorkspaceSessionCoordinator Session => m_Session ??= new(
|
||||
State,
|
||||
Feedback,
|
||||
JS,
|
||||
ApiClient,
|
||||
WorkspaceQuery,
|
||||
Scope.ReloadCampaignsAsync,
|
||||
Scope.ReloadCharacterCampaignOptionsAsync,
|
||||
Scope.RefreshCampaignScopeAsync,
|
||||
Live.SyncStateEventsAsync,
|
||||
Live.StopStateEventsAsync,
|
||||
EnsureAdminUsersLoadedAsync,
|
||||
Play.ResetCampaignLogDetailState,
|
||||
() => InvokeAsync(StateHasChanged),
|
||||
message => LoggedOut.InvokeAsync(message));
|
||||
private WorkspaceSessionCoordinator Session => m_Session ??= new(State, Feedback, JS, ApiClient, WorkspaceQuery, Scope.ReloadCampaignsAsync, Scope.ReloadCharacterCampaignOptionsAsync, Scope.RefreshCampaignScopeAsync, Live.SyncStateEventsAsync, Live.StopStateEventsAsync, EnsureAdminUsersLoadedAsync, Play.ResetCampaignLogDetailState, () => InvokeAsync(StateHasChanged), message => LoggedOut.InvokeAsync(message));
|
||||
|
||||
private IReadOnlyList<AppHeaderMenuItem> HeaderMenuItems
|
||||
{
|
||||
@@ -163,12 +124,27 @@ public partial class Workspace : IAsyncDisposable
|
||||
{
|
||||
var items = new List<AppHeaderMenuItem>
|
||||
{
|
||||
new() { Label = "Play", IsActive = State.IsPlayScreen, OnSelected = () => Session.SwitchScreenAsync("play") },
|
||||
new() { Label = "Campaign Management", IsActive = State.IsManagementScreen, OnSelected = () => Session.SwitchScreenAsync("management") }
|
||||
new()
|
||||
{
|
||||
Label = "Play",
|
||||
IsActive = State.IsPlayScreen,
|
||||
OnSelected = () => Session.SwitchScreenAsync("play")
|
||||
},
|
||||
new()
|
||||
{
|
||||
Label = "Campaign Management",
|
||||
IsActive = State.IsManagementScreen,
|
||||
OnSelected = () => Session.SwitchScreenAsync("management")
|
||||
}
|
||||
};
|
||||
|
||||
if (State.IsCurrentUserAdmin)
|
||||
items.Add(new AppHeaderMenuItem { Label = "Admin", IsActive = State.IsAdminScreen, OnSelected = () => Session.SwitchScreenAsync(ScreenAdmin) });
|
||||
items.Add(new()
|
||||
{
|
||||
Label = "Admin",
|
||||
IsActive = State.IsAdminScreen,
|
||||
OnSelected = () => Session.SwitchScreenAsync(ScreenAdmin)
|
||||
});
|
||||
|
||||
return items;
|
||||
}
|
||||
@@ -178,12 +154,12 @@ public partial class Workspace : IAsyncDisposable
|
||||
private DotNetObjectReference<Workspace>? DotNetRef { get; set; }
|
||||
|
||||
private const string ScreenAdmin = "admin";
|
||||
|
||||
private WorkspaceCampaignScopeCoordinator? m_Scope;
|
||||
private WorkspaceAdminCoordinator? m_Admin;
|
||||
private WorkspaceCampaignCoordinator? m_Campaigns;
|
||||
private WorkspaceFeedbackService? m_Feedback;
|
||||
private WorkspaceLiveStateController? m_Live;
|
||||
private WorkspacePlayCoordinator? m_Play;
|
||||
private WorkspaceCampaignCoordinator? m_Campaigns;
|
||||
private WorkspaceAdminCoordinator? m_Admin;
|
||||
private WorkspaceFeedbackService? m_Feedback;
|
||||
|
||||
private WorkspaceCampaignScopeCoordinator? m_Scope;
|
||||
private WorkspaceSessionCoordinator? m_Session;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user