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>
|
||||
/// Metoda zwraca listę postaci przypisanych do danego użytkownika
|
||||
/// Metoda zwraca listę zalogowanych postaci
|
||||
/// </summary>
|
||||
/// <returns> Lista zalogowanych postaci lub wiadomość błędu </returns>
|
||||
[HttpGet("loggedCharacters")]
|
||||
public async Task<Either<List<CharacterBasicStatsViewModel>, ErrorResponse>> GetLoggedUsersCharacters()
|
||||
{
|
||||
var connectedCharacters = _sessionHubData.ConnectedCharacters_Prop;
|
||||
var characters = await _service.GetBasicCharactersData(connectedCharacters.Values.ToList());
|
||||
var characters = await _service.GetBasicCharactersData(connectedCharacters.Keys.ToList());
|
||||
|
||||
return characters.ToList();
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
using Microsoft.AspNetCore.SignalR;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SessionCompanion.Hubs
|
||||
@ -25,10 +26,11 @@ namespace SessionCompanion.Hubs
|
||||
public override Task OnDisconnectedAsync(Exception exception)
|
||||
{
|
||||
// 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");
|
||||
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
|
||||
{
|
||||
@ -61,6 +63,29 @@ namespace SessionCompanion.Hubs
|
||||
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
|
||||
|
||||
#region Player
|
||||
@ -72,7 +97,7 @@ namespace SessionCompanion.Hubs
|
||||
/// <returns>Wysyła wiadomość "Welcome" do wszystkich zalogowanych użytkoników</returns>
|
||||
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");
|
||||
|
||||
return Clients.All.SendAsync("Welcome", "Welcome new Player");
|
||||
|
@ -10,7 +10,7 @@ namespace SessionCompanion.Hubs
|
||||
/// <summary>
|
||||
/// Lista zalogowanych graczy i identyfikator wybranej postaci
|
||||
/// </summary>
|
||||
public static Dictionary<string, int> ConnectedCharacters = new Dictionary<string, int>();
|
||||
public static Dictionary<int, string> ConnectedCharacters = new Dictionary<int, string>();
|
||||
|
||||
/// <summary>
|
||||
/// Status, czy GM został już zalogowany
|
||||
@ -36,7 +36,7 @@ namespace SessionCompanion.Hubs
|
||||
/// <summary>
|
||||
/// Zwraca lub ustawia listę zalogowanych postaci
|
||||
/// </summary>
|
||||
public Dictionary<string, int> ConnectedCharacters_Prop
|
||||
public Dictionary<int, string> ConnectedCharacters_Prop
|
||||
{
|
||||
get
|
||||
{
|
||||
|
@ -20,23 +20,16 @@
|
||||
</member>
|
||||
<member name="M:SessionCompanion.Controllers.CharacterController.GetLoggedUsersCharacters">
|
||||
<summary>
|
||||
Metoda zwraca listę postaci przypisanych do danego użytkownika
|
||||
Metoda zwraca listę zalogowanych postaci
|
||||
</summary>
|
||||
<returns> Lista zalogowanych postaci lub wiadomość błędu </returns>
|
||||
</member>
|
||||
<member name="M:SessionCompanion.Controllers.CharacterController.GetCharacterEveryStat(System.Int32)">
|
||||
<summary>
|
||||
Metoda zwraca wszystkie statystyki dla danej postaci
|
||||
Zwracane statystyki dla:
|
||||
Charisma
|
||||
Constitution
|
||||
Dexterity
|
||||
Intelligence
|
||||
Strength
|
||||
Wisdom
|
||||
</summary>
|
||||
<param name="characterId"></param>
|
||||
<returns></returns>
|
||||
<param name="characterId"> Id postaci </param>
|
||||
<returns> Listę wszystkich statystyk </returns>
|
||||
</member>
|
||||
<member name="M:SessionCompanion.Controllers.UserController.Login(System.String,System.String)">
|
||||
<summary>
|
||||
@ -79,6 +72,19 @@
|
||||
</summary>
|
||||
<returns>Zwraca true - jeśli udało się zalogować, false - jesli ktoś zalogował się już jako GM</returns>
|
||||
</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)">
|
||||
<summary>
|
||||
Logowanie do Huba dla Gracza
|
||||
|
Loading…
Reference in New Issue
Block a user