Skip to content

Commit

Permalink
manage backup file for multiple game running
Browse files Browse the repository at this point in the history
  • Loading branch information
Lacro59 committed Mar 11, 2022
1 parent be65998 commit 42d2b31
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 25 deletions.
48 changes: 25 additions & 23 deletions source/GameActivity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -625,7 +625,7 @@ private async void OnTimedBackupEvent(object source, ElapsedEventArgs e, Guid Id
runningActivity.activityBackup.ElapsedSeconds = ElapsedSeconds;
runningActivity.activityBackup.ItemsDetailsDatas = runningActivity.GameActivitiesLog.ItemsDetails.Get(runningActivity.activityBackup.DateSession);

string PathFileBackup = Path.Combine(PluginDatabase.Paths.PluginUserDataPath, "SaveSession.json");
string PathFileBackup = Path.Combine(PluginDatabase.Paths.PluginUserDataPath, $"SaveSession_{Id}.json");
FileSystem.WriteStringToFileSafe(PathFileBackup, Serialization.ToJson(runningActivity.activityBackup));
}
catch (Exception ex)
Expand Down Expand Up @@ -1153,7 +1153,7 @@ public override void OnGameStopped(OnGameStoppedEventArgs args)
});

// Delete backup
string PathFileBackup = Path.Combine(PluginDatabase.Paths.PluginUserDataPath, "SaveSession.json");
string PathFileBackup = Path.Combine(PluginDatabase.Paths.PluginUserDataPath, $"SaveSession_{args.Game.Id}.json");
FileSystem.DeleteFile(PathFileBackup);
}

Expand Down Expand Up @@ -1253,32 +1253,34 @@ public override void OnApplicationStarted(OnApplicationStartedEventArgs args)
// Check backup
try
{
string PathFileBackup = Path.Combine(PluginDatabase.Paths.PluginUserDataPath, "SaveSession.json");
if (File.Exists(PathFileBackup))
Parallel.ForEach(Directory.EnumerateFiles(PluginDatabase.Paths.PluginUserDataPath, "SaveSession_*.json"), (objectFile) =>
{
Serialization.TryFromJsonFile<ActivityBackup>(PathFileBackup, out ActivityBackup backupData);
Serialization.TryFromJsonFile<ActivityBackup>(objectFile, out ActivityBackup backupData);
if (backupData != null)
{
PlayniteApi.Notifications.Add(new NotificationMessage(
$"{PluginDatabase.PluginName}-backup",
PluginDatabase.PluginName + System.Environment.NewLine + string.Format(resources.GetString("LOCGaBackupExist"), backupData.Name),
NotificationType.Info,
() =>
{
WindowOptions windowOptions = new WindowOptions
Application.Current.Dispatcher.BeginInvoke((Action)delegate
{
PlayniteApi.Notifications.Add(new NotificationMessage(
$"{PluginDatabase.PluginName}-backup-{Path.GetFileNameWithoutExtension(objectFile)}",
PluginDatabase.PluginName + System.Environment.NewLine + string.Format(resources.GetString("LOCGaBackupExist"), backupData.Name),
NotificationType.Info,
() =>
{
ShowMinimizeButton = false,
ShowMaximizeButton = false,
ShowCloseButton = true,
};
GameActivityBackup ViewExtension = new GameActivityBackup(backupData);
Window windowExtension = PlayniteUiHelper.CreateExtensionWindow(PlayniteApi, resources.GetString("LOCGaBackupDataInfo"), ViewExtension, windowOptions);
windowExtension.ShowDialog();
}
));
WindowOptions windowOptions = new WindowOptions
{
ShowMinimizeButton = false,
ShowMaximizeButton = false,
ShowCloseButton = true,
};
GameActivityBackup ViewExtension = new GameActivityBackup(backupData);
Window windowExtension = PlayniteUiHelper.CreateExtensionWindow(PlayniteApi, resources.GetString("LOCGaBackupDataInfo"), ViewExtension, windowOptions);
windowExtension.ShowDialog();
}
));
});
}
}
});
}
catch (Exception ex)
{
Expand Down
6 changes: 4 additions & 2 deletions source/Views/GameActivityBackup.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,13 @@ public partial class GameActivityBackup : UserControl
private ViewDataContext ViewDataContext = new ViewDataContext();
private ActivityBackup activityBackup;

private Guid Id { get; set; }

public GameActivityBackup(ActivityBackup activityBackup)
{
this.activityBackup = activityBackup;
Game game = PluginDatabase.PlayniteApi.Database.Games.Get(activityBackup.Id);
this.Id = game.Id;

InitializeComponent();
this.DataContext = ViewDataContext;
Expand Down Expand Up @@ -71,7 +73,7 @@ private void PART_BtAdd_Click(object sender, RoutedEventArgs e)
PluginDatabase.Update(pluginData);


string PathFileBackup = Path.Combine(PluginDatabase.Paths.PluginUserDataPath, "SaveSession.json");
string PathFileBackup = Path.Combine(PluginDatabase.Paths.PluginUserDataPath, $"SaveSession_{this.Id}.json");
FileSystem.DeleteFile(PathFileBackup);
}
catch (Exception ex)
Expand All @@ -86,7 +88,7 @@ private void PART_BtRemove_Click(object sender, RoutedEventArgs e)
{
try
{
string PathFileBackup = Path.Combine(PluginDatabase.Paths.PluginUserDataPath, "SaveSession.json");
string PathFileBackup = Path.Combine(PluginDatabase.Paths.PluginUserDataPath, $"SaveSession_{this.Id}.json");
FileSystem.DeleteFile(PathFileBackup);
}
catch (Exception ex)
Expand Down

0 comments on commit 42d2b31

Please sign in to comment.