Add Controller that returns logged characters

This commit is contained in:
Karol Górzyński 2020-12-20 15:46:00 +01:00
parent 11af142a09
commit bf5604871d
4 changed files with 47 additions and 14 deletions

View File

@ -7,6 +7,7 @@ using SessionCompanion.ViewModels.CharacterViewModels;
namespace SessionCompanion.Controllers
{
using SessionCompanion.Hubs;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
@ -16,10 +17,12 @@ namespace SessionCompanion.Controllers
public class CharacterController : Controller
{
private readonly ICharacterService _service;
private readonly SessionHubData _sessionHubData;
public CharacterController(ICharacterService service)
{
this._service = service;
this._sessionHubData = new SessionHubData();
}
/// <summary>
@ -44,7 +47,7 @@ namespace SessionCompanion.Controllers
/// Metoda zwraca listę postaci przypisanych do danego użytkownika
/// </summary>
/// <param name="userId"> Identyfikator użytkownika </param>
/// <returns> Lista postać lub wiadomość błędu </returns>
/// <returns> Lista postaci lub wiadomość błędu </returns>
[HttpGet("userCharactersList")]
public async Task<Either<List<CharacterForLoginViewModel>, ErrorResponse>> GetCharacterListForUser([Required] int userId)
{
@ -61,5 +64,27 @@ namespace SessionCompanion.Controllers
Message = "No characters with given user id"
};
}
/// <summary>
/// Metoda zwraca listę postaci przypisanych do danego użytkownika
/// </summary>
/// <returns> Lista zalogowanych postaci lub wiadomość błędu </returns>
[HttpGet("loggedCharacters")]
public async Task<Either<List<CharacterBasicStatsViewModel>, ErrorResponse>> GetLoggedUsersCharacters()
{
List<CharacterBasicStatsViewModel> characters = new List<CharacterBasicStatsViewModel>();
var connectedCharacters = _sessionHubData.ConnectedCharacters_Prop;
foreach (var characterId in connectedCharacters.Values)
characters.Add(await _service.GetBasicCharacterData(characterId));
if (characters.Any())
return characters;
return new ErrorResponse()
{
StatusCode = 204,
Message = "No logged characters"
};
}
}
}

View File

@ -34,7 +34,7 @@ namespace SessionCompanion.Hubs
}
/// <summary>
/// Zwraca lub ustawia listę zalogowanych graczy
/// Zwraca lub ustawia listę zalogowanych postaci
/// </summary>
public Dictionary<string, int> ConnectedCharacters_Prop
{

View File

@ -1,4 +1,4 @@
{
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
@ -18,10 +18,10 @@
"SessionCompanion": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"applicationUrl": "https://localhost:5001;http://localhost:5000"
}
}
}
}

View File

@ -11,6 +11,19 @@
<param name="characterId">Identyfikator postaci</param>
<returns>ViewModel Postaci/ErrorResponse</returns>
</member>
<member name="M:SessionCompanion.Controllers.CharacterController.GetCharacterListForUser(System.Int32)">
<summary>
Metoda zwraca listę postaci przypisanych do danego użytkownika
</summary>
<param name="userId"> Identyfikator użytkownika </param>
<returns> Lista postaci lub wiadomość błędu </returns>
</member>
<member name="M:SessionCompanion.Controllers.CharacterController.GetLoggedUsersCharacters">
<summary>
Metoda zwraca listę postaci przypisanych do danego użytkownika
</summary>
<returns> Lista zalogowanych postaci lub wiadomość błędu </returns>
</member>
<member name="M:SessionCompanion.Controllers.UserController.Login(System.String,System.String)">
<summary>
Metoda przyjmuje login oraz hasło i sprawdza czy istnieje użytkownik o podanych parametrach
@ -32,14 +45,9 @@
</summary>
<returns>true jesli ktoś jest już zalogowany i false jeśli nie</returns>
</member>
<member name="F:SessionCompanion.Hubs.SessionHub.ConnectedCharacters">
<member name="F:SessionCompanion.Hubs.SessionHub.sessionHubData">
<summary>
Lista zalogowanych graczy i identyfikator wybranej postaci
</summary>
</member>
<member name="F:SessionCompanion.Hubs.SessionHub.GameMasterConnected">
<summary>
Status, czy GM został już zalogowany
Klasa zawierająca wszystkie dane potrzebne w SignalR odnośnie aktualnej sesji
</summary>
</member>
<member name="M:SessionCompanion.Hubs.SessionHub.OnDisconnectedAsync(System.Exception)">
@ -86,7 +94,7 @@
</member>
<member name="P:SessionCompanion.Hubs.SessionHubData.ConnectedCharacters_Prop">
<summary>
Zwraca lub ustawia listę zalogowanych graczy
Zwraca lub ustawia listę zalogowanych postaci
</summary>
</member>
</members>