Files
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

27 lines
918 B
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using System.Threading;
using System.Threading.Tasks;
using EpicGames.Perforce;
using Microsoft.Extensions.Logging;
using UnrealGameSync;
namespace UnrealGameSyncCmd.Utils
{
internal static class WorkspaceStateUtils
{
public static async Task<WorkspaceStateWrapper> ReadWorkspaceState(IPerforceConnection perforceClient, UserWorkspaceSettings settings, GlobalSettingsFile userSettings, ILogger logger)
{
WorkspaceStateWrapper state = userSettings.FindOrAddWorkspaceState(settings);
if (state.Current.SettingsTimeUtc != settings.LastModifiedTimeUtc)
{
logger.LogDebug("Updating state due to modified settings timestamp");
ProjectInfo info = await ProjectInfo.CreateAsync(perforceClient, settings, CancellationToken.None);
state.Modify(x => x.UpdateCachedProjectInfo(info, settings.LastModifiedTimeUtc));
}
return state;
}
}
}