SES-133 Create method to send message and changed Dictionary model
This commit is contained in:
parent
36b89d209f
commit
3cc4dace5d
@ -66,14 +66,14 @@ namespace SessionCompanion.Controllers
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Metoda zwraca listę postaci przypisanych do danego użytkownika
|
/// Metoda zwraca listę zalogowanych postaci
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns> Lista zalogowanych postaci lub wiadomość błędu </returns>
|
/// <returns> Lista zalogowanych postaci lub wiadomość błędu </returns>
|
||||||
[HttpGet("loggedCharacters")]
|
[HttpGet("loggedCharacters")]
|
||||||
public async Task<Either<List<CharacterBasicStatsViewModel>, ErrorResponse>> GetLoggedUsersCharacters()
|
public async Task<Either<List<CharacterBasicStatsViewModel>, ErrorResponse>> GetLoggedUsersCharacters()
|
||||||
{
|
{
|
||||||
var connectedCharacters = _sessionHubData.ConnectedCharacters_Prop;
|
var connectedCharacters = _sessionHubData.ConnectedCharacters_Prop;
|
||||||
var characters = await _service.GetBasicCharactersData(connectedCharacters.Values.ToList());
|
var characters = await _service.GetBasicCharactersData(connectedCharacters.Keys.ToList());
|
||||||
|
|
||||||
return characters.ToList();
|
return characters.ToList();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using Microsoft.AspNetCore.SignalR;
|
using Microsoft.AspNetCore.SignalR;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace SessionCompanion.Hubs
|
namespace SessionCompanion.Hubs
|
||||||
@ -25,10 +26,11 @@ namespace SessionCompanion.Hubs
|
|||||||
public override Task OnDisconnectedAsync(Exception exception)
|
public override Task OnDisconnectedAsync(Exception exception)
|
||||||
{
|
{
|
||||||
// if true then it is character, if false it is GM
|
// if true then it is character, if false it is GM
|
||||||
if (this.sessionHubData.ConnectedCharacters_Prop.ContainsKey(Context.ConnectionId))
|
if (this.sessionHubData.ConnectedCharacters_Prop.ContainsValue(Context.ConnectionId))
|
||||||
{
|
{
|
||||||
Groups.RemoveFromGroupAsync(Context.ConnectionId, "Players");
|
Groups.RemoveFromGroupAsync(Context.ConnectionId, "Players");
|
||||||
this.sessionHubData.ConnectedCharacters_Prop.Remove(Context.ConnectionId);
|
int charactedId = this.sessionHubData.ConnectedCharacters_Prop.Where(e => e.Value.Equals(Context.ConnectionId)).First().Key;
|
||||||
|
this.sessionHubData.ConnectedCharacters_Prop.Remove(charactedId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -61,6 +63,29 @@ namespace SessionCompanion.Hubs
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Metoda wysyła wiadomość do konkretnego gracza [MessageFromGameMaster]
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="characterId"> Id postaci któa ma otrzymać wiadomość </param>
|
||||||
|
/// <param name="message"> Wiadomość do wysłania </param>
|
||||||
|
public void SendMessageToPlayer(int characterId, string message)
|
||||||
|
{
|
||||||
|
string playerConnectionId = "";
|
||||||
|
if (this.sessionHubData.ConnectedCharacters_Prop.TryGetValue(characterId, out playerConnectionId))
|
||||||
|
{
|
||||||
|
Clients.Client(playerConnectionId).SendAsync("MessageFromGameMaster", message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Metoda wysyła wiadomość do wszystkich graczy [MessageFromGameMaster]
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="message"> Wiadomość do wysłania </param>
|
||||||
|
public void SendMessageToAllPlayers(string message)
|
||||||
|
{
|
||||||
|
Clients.Group("Players").SendAsync("MessageFromGameMaster", message);
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Player
|
#region Player
|
||||||
@ -72,7 +97,7 @@ namespace SessionCompanion.Hubs
|
|||||||
/// <returns>Wysyła wiadomość "Welcome" do wszystkich zalogowanych użytkoników</returns>
|
/// <returns>Wysyła wiadomość "Welcome" do wszystkich zalogowanych użytkoników</returns>
|
||||||
public Task PlayerCharacterLogin(int characterId)
|
public Task PlayerCharacterLogin(int characterId)
|
||||||
{
|
{
|
||||||
this.sessionHubData.ConnectedCharacters_Prop.Add(Context.ConnectionId, characterId);
|
this.sessionHubData.ConnectedCharacters_Prop.Add(characterId, Context.ConnectionId);
|
||||||
Groups.AddToGroupAsync(Context.ConnectionId, "Players");
|
Groups.AddToGroupAsync(Context.ConnectionId, "Players");
|
||||||
|
|
||||||
return Clients.All.SendAsync("Welcome", "Welcome new Player");
|
return Clients.All.SendAsync("Welcome", "Welcome new Player");
|
||||||
|
@ -10,7 +10,7 @@ namespace SessionCompanion.Hubs
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Lista zalogowanych graczy i identyfikator wybranej postaci
|
/// Lista zalogowanych graczy i identyfikator wybranej postaci
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static Dictionary<string, int> ConnectedCharacters = new Dictionary<string, int>();
|
public static Dictionary<int, string> ConnectedCharacters = new Dictionary<int, string>();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Status, czy GM został już zalogowany
|
/// Status, czy GM został już zalogowany
|
||||||
@ -36,7 +36,7 @@ namespace SessionCompanion.Hubs
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Zwraca lub ustawia listę zalogowanych postaci
|
/// Zwraca lub ustawia listę zalogowanych postaci
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Dictionary<string, int> ConnectedCharacters_Prop
|
public Dictionary<int, string> ConnectedCharacters_Prop
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
@ -20,23 +20,16 @@
|
|||||||
</member>
|
</member>
|
||||||
<member name="M:SessionCompanion.Controllers.CharacterController.GetLoggedUsersCharacters">
|
<member name="M:SessionCompanion.Controllers.CharacterController.GetLoggedUsersCharacters">
|
||||||
<summary>
|
<summary>
|
||||||
Metoda zwraca listę postaci przypisanych do danego użytkownika
|
Metoda zwraca listę zalogowanych postaci
|
||||||
</summary>
|
</summary>
|
||||||
<returns> Lista zalogowanych postaci lub wiadomość błędu </returns>
|
<returns> Lista zalogowanych postaci lub wiadomość błędu </returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:SessionCompanion.Controllers.CharacterController.GetCharacterEveryStat(System.Int32)">
|
<member name="M:SessionCompanion.Controllers.CharacterController.GetCharacterEveryStat(System.Int32)">
|
||||||
<summary>
|
<summary>
|
||||||
Metoda zwraca wszystkie statystyki dla danej postaci
|
Metoda zwraca wszystkie statystyki dla danej postaci
|
||||||
Zwracane statystyki dla:
|
|
||||||
Charisma
|
|
||||||
Constitution
|
|
||||||
Dexterity
|
|
||||||
Intelligence
|
|
||||||
Strength
|
|
||||||
Wisdom
|
|
||||||
</summary>
|
</summary>
|
||||||
<param name="characterId"></param>
|
<param name="characterId"> Id postaci </param>
|
||||||
<returns></returns>
|
<returns> Listę wszystkich statystyk </returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:SessionCompanion.Controllers.UserController.Login(System.String,System.String)">
|
<member name="M:SessionCompanion.Controllers.UserController.Login(System.String,System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
@ -79,6 +72,19 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns>Zwraca true - jeśli udało się zalogować, false - jesli ktoś zalogował się już jako GM</returns>
|
<returns>Zwraca true - jeśli udało się zalogować, false - jesli ktoś zalogował się już jako GM</returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:SessionCompanion.Hubs.SessionHub.SendMessageToPlayer(System.Int32,System.String)">
|
||||||
|
<summary>
|
||||||
|
Metoda wysyła wiadomość do konkretnego gracza [MessageFromGameMaster]
|
||||||
|
</summary>
|
||||||
|
<param name="characterId"> Id postaci któa ma otrzymać wiadomość </param>
|
||||||
|
<param name="message"> Wiadomość do wysłania </param>
|
||||||
|
</member>
|
||||||
|
<member name="M:SessionCompanion.Hubs.SessionHub.SendMessageToAllPlayers(System.String)">
|
||||||
|
<summary>
|
||||||
|
Metoda wysyła wiadomość do wszystkich graczy [MessageFromGameMaster]
|
||||||
|
</summary>
|
||||||
|
<param name="message"> Wiadomość do wysłania </param>
|
||||||
|
</member>
|
||||||
<member name="M:SessionCompanion.Hubs.SessionHub.PlayerCharacterLogin(System.Int32)">
|
<member name="M:SessionCompanion.Hubs.SessionHub.PlayerCharacterLogin(System.Int32)">
|
||||||
<summary>
|
<summary>
|
||||||
Logowanie do Huba dla Gracza
|
Logowanie do Huba dla Gracza
|
||||||
|
Loading…
Reference in New Issue
Block a user