store session to db only after ended, allow test runs without writing to db
This commit is contained in:
@@ -24,8 +24,6 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
|
||||
[SerializeField]
|
||||
private string databasePath = "measurements.realm";
|
||||
|
||||
public Session Session { get; private set; }
|
||||
|
||||
private Realm _realm;
|
||||
|
||||
private void OnEnable()
|
||||
@@ -45,15 +43,21 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
|
||||
|
||||
#region Session
|
||||
|
||||
public void StartSession() => _realm.Write(() => Session = _realm.Add(new Session()));
|
||||
|
||||
public void EndSession(float time) =>_realm.Write(() => Session.Time = time);
|
||||
public void EndSession(Session session, float time)
|
||||
{
|
||||
session.Time = time;
|
||||
|
||||
_realm.Write(() =>
|
||||
{
|
||||
_realm.Add(session);
|
||||
});
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Puzzles
|
||||
|
||||
public Puzzle New(PuzzleModuleDescription puzzle)
|
||||
private Puzzle New(PuzzleModuleDescription puzzle)
|
||||
{
|
||||
Puzzle created = null;
|
||||
|
||||
@@ -61,10 +65,10 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
|
||||
|
||||
return created;
|
||||
}
|
||||
|
||||
public Puzzle LoadOrNew(PuzzleModuleDescription puzzle) => _realm.Find<Puzzle>(puzzle.Id) ?? New(puzzle);
|
||||
|
||||
public Puzzle Load(PuzzleModuleDescription puzzle) => _realm.Find<Puzzle>(puzzle.Id);
|
||||
|
||||
private Puzzle LoadOrNew(PuzzleModuleDescription puzzle) => _realm.Find<Puzzle>(puzzle.Id) ?? New(puzzle);
|
||||
|
||||
private Puzzle Load(PuzzleModuleDescription puzzle) => _realm.Find<Puzzle>(puzzle.Id);
|
||||
|
||||
public void Delete(PuzzleModuleDescription puzzle)
|
||||
{
|
||||
@@ -75,7 +79,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
|
||||
}
|
||||
}
|
||||
|
||||
public void EndMeasurement(PuzzleModuleDescription puzzle, PuzzleMeasurement measurement)
|
||||
public void EndMeasurement(Session session, PuzzleModuleDescription puzzle, PuzzleMeasurement measurement)
|
||||
{
|
||||
var found = LoadOrNew(puzzle);
|
||||
|
||||
@@ -85,7 +89,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
|
||||
found.Measurements.Add(measurement);
|
||||
|
||||
// add solved puzzle to session
|
||||
Session.PuzzlesSolved.Add(found);
|
||||
session.PuzzlesSolved.Add(found);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user