From bf5604871d7b2b9b9b1356acb27a904b78594918 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20G=C3=B3rzy=C5=84ski?= Date: Sun, 20 Dec 2020 15:46:00 +0100 Subject: [PATCH] Add Controller that returns logged characters --- .../Controllers/CharacterController.cs | 27 ++++++++++++++++++- .../SessionCompanion/Hubs/SessionHubData.cs | 2 +- .../Properties/launchSettings.json | 8 +++--- .../SessionCompanion/SessionCompanion.xml | 24 +++++++++++------ 4 files changed, 47 insertions(+), 14 deletions(-) diff --git a/SessionCompanion/SessionCompanion/Controllers/CharacterController.cs b/SessionCompanion/SessionCompanion/Controllers/CharacterController.cs index cb6e42e..ad9edc9 100644 --- a/SessionCompanion/SessionCompanion/Controllers/CharacterController.cs +++ b/SessionCompanion/SessionCompanion/Controllers/CharacterController.cs @@ -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(); } /// @@ -44,7 +47,7 @@ namespace SessionCompanion.Controllers /// Metoda zwraca listę postaci przypisanych do danego użytkownika /// /// Identyfikator użytkownika - /// Lista postać lub wiadomość błędu + /// Lista postaci lub wiadomość błędu [HttpGet("userCharactersList")] public async Task, ErrorResponse>> GetCharacterListForUser([Required] int userId) { @@ -61,5 +64,27 @@ namespace SessionCompanion.Controllers Message = "No characters with given user id" }; } + /// + /// Metoda zwraca listę postaci przypisanych do danego użytkownika + /// + /// Lista zalogowanych postaci lub wiadomość błędu + [HttpGet("loggedCharacters")] + public async Task, ErrorResponse>> GetLoggedUsersCharacters() + { + List characters = new List(); + 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" + }; + } } } \ No newline at end of file diff --git a/SessionCompanion/SessionCompanion/Hubs/SessionHubData.cs b/SessionCompanion/SessionCompanion/Hubs/SessionHubData.cs index d370d20..c92bfaa 100644 --- a/SessionCompanion/SessionCompanion/Hubs/SessionHubData.cs +++ b/SessionCompanion/SessionCompanion/Hubs/SessionHubData.cs @@ -34,7 +34,7 @@ namespace SessionCompanion.Hubs } /// - /// Zwraca lub ustawia listę zalogowanych graczy + /// Zwraca lub ustawia listę zalogowanych postaci /// public Dictionary ConnectedCharacters_Prop { diff --git a/SessionCompanion/SessionCompanion/Properties/launchSettings.json b/SessionCompanion/SessionCompanion/Properties/launchSettings.json index bb3389e..b03ba01 100644 --- a/SessionCompanion/SessionCompanion/Properties/launchSettings.json +++ b/SessionCompanion/SessionCompanion/Properties/launchSettings.json @@ -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" } } -} +} \ No newline at end of file diff --git a/SessionCompanion/SessionCompanion/SessionCompanion.xml b/SessionCompanion/SessionCompanion/SessionCompanion.xml index 13641ce..46effbd 100644 --- a/SessionCompanion/SessionCompanion/SessionCompanion.xml +++ b/SessionCompanion/SessionCompanion/SessionCompanion.xml @@ -11,6 +11,19 @@ Identyfikator postaci ViewModel Postaci/ErrorResponse + + + Metoda zwraca listę postaci przypisanych do danego użytkownika + + Identyfikator użytkownika + Lista postaci lub wiadomość błędu + + + + Metoda zwraca listę postaci przypisanych do danego użytkownika + + Lista zalogowanych postaci lub wiadomość błędu + Metoda przyjmuje login oraz hasło i sprawdza czy istnieje użytkownik o podanych parametrach @@ -32,14 +45,9 @@ true jesli ktoś jest już zalogowany i false jeśli nie - + - Lista zalogowanych graczy i identyfikator wybranej postaci - - - - - Status, czy GM został już zalogowany + Klasa zawierająca wszystkie dane potrzebne w SignalR odnośnie aktualnej sesji @@ -86,7 +94,7 @@ - Zwraca lub ustawia listę zalogowanych graczy + Zwraca lub ustawia listę zalogowanych postaci