diff --git a/SessionCompanion/SessionCompanion/Hubs/SessionHub.cs b/SessionCompanion/SessionCompanion/Hubs/SessionHub.cs
index d6c6573..4e59a32 100644
--- a/SessionCompanion/SessionCompanion/Hubs/SessionHub.cs
+++ b/SessionCompanion/SessionCompanion/Hubs/SessionHub.cs
@@ -1,7 +1,5 @@
using Microsoft.AspNetCore.SignalR;
using System;
-using System.Collections.Generic;
-using System.Linq;
using System.Threading.Tasks;
namespace SessionCompanion.Hubs
@@ -9,17 +7,13 @@ namespace SessionCompanion.Hubs
public class SessionHub : Hub
{
///
- /// Lista zalogowanych graczy i identyfikator wybranej postaci
+ /// Klasa zawierająca wszystkie dane potrzebne w SignalR odnośnie aktualnej sesji
///
- private static Dictionary ConnectedCharacters = new Dictionary();
-
- ///
- /// Status, czy GM został już zalogowany
- ///
- private static bool GameMasterConnected = new bool();
+ private SessionHubData sessionHubData;
public SessionHub()
{
+ this.sessionHubData = new SessionHubData();
}
///
@@ -31,16 +25,17 @@ namespace SessionCompanion.Hubs
public override Task OnDisconnectedAsync(Exception exception)
{
// if true then it is character, if false it is GM
- if (ConnectedCharacters.ContainsKey(Context.ConnectionId))
+ if (this.sessionHubData.ConnectedCharacters_Prop.ContainsKey(Context.ConnectionId))
{
Groups.RemoveFromGroupAsync(Context.ConnectionId, "Players");
- ConnectedCharacters.Remove(Context.ConnectionId);
+ this.sessionHubData.ConnectedCharacters_Prop.Remove(Context.ConnectionId);
}
else
{
Groups.RemoveFromGroupAsync(Context.ConnectionId, "GameMaster");
- GameMasterConnected = false;
+ this.sessionHubData.GameMasterConnected_Prop = false;
}
+
Clients.All.SendAsync("GoodBye", "Player has left the game");
return base.OnDisconnectedAsync(exception);
}
@@ -54,10 +49,10 @@ namespace SessionCompanion.Hubs
/// Zwraca true - jeśli udało się zalogować, false - jesli ktoś zalogował się już jako GM
public bool GameMasterLogin()
{
- if (!GameMasterConnected)
+ if (!this.sessionHubData.GameMasterConnected_Prop)
{
Groups.AddToGroupAsync(Context.ConnectionId, "GameMaster");
- GameMasterConnected = true;
+ this.sessionHubData.GameMasterConnected_Prop = true;
Clients.All.SendAsync("Welcome", "Welcome new Game Master");
return true;
}
@@ -77,7 +72,7 @@ namespace SessionCompanion.Hubs
/// Wysyła wiadomość "Welcome" do wszystkich zalogowanych użytkoników
public Task PlayerCharacterLogin(int characterId)
{
- ConnectedCharacters.Add(Context.ConnectionId, characterId);
+ this.sessionHubData.ConnectedCharacters_Prop.Add(Context.ConnectionId, characterId);
Groups.AddToGroupAsync(Context.ConnectionId, "Players");
return Clients.All.SendAsync("Welcome", "Welcome new Player");
diff --git a/SessionCompanion/SessionCompanion/Hubs/SessionHubData.cs b/SessionCompanion/SessionCompanion/Hubs/SessionHubData.cs
new file mode 100644
index 0000000..d370d20
--- /dev/null
+++ b/SessionCompanion/SessionCompanion/Hubs/SessionHubData.cs
@@ -0,0 +1,52 @@
+using System.Collections.Generic;
+
+namespace SessionCompanion.Hubs
+{
+ ///
+ /// Statyczna klasa przechowujaca informacje dotyczące SignalR dla SessionHub
+ ///
+ public class SessionHubData
+ {
+ ///
+ /// Lista zalogowanych graczy i identyfikator wybranej postaci
+ ///
+ public static Dictionary ConnectedCharacters = new Dictionary();
+
+ ///
+ /// Status, czy GM został już zalogowany
+ ///
+ public static bool GameMasterConnected;
+
+ ///
+ /// Zwraca lub ustawia status zalogowania GM
+ ///
+ public bool GameMasterConnected_Prop
+ {
+ get
+ {
+ return GameMasterConnected;
+ }
+
+ set
+ {
+ GameMasterConnected = value;
+ }
+ }
+
+ ///
+ /// Zwraca lub ustawia listę zalogowanych graczy
+ ///
+ public Dictionary ConnectedCharacters_Prop
+ {
+ get
+ {
+ return ConnectedCharacters;
+ }
+
+ set
+ {
+ ConnectedCharacters = value;
+ }
+ }
+ }
+}