From 1ae0ee5a8a18b381b54eec5507bfebe03d6ddcba Mon Sep 17 00:00:00 2001 From: Michele Scandura Date: Fri, 13 Nov 2020 21:38:36 +0000 Subject: [PATCH] rectoring --- .../Commands/NewSessionCommand.cs | 15 +++++++ .../Controllers/IdentityController.cs | 18 --------- .../Controllers/SessionController.cs | 12 +++++- .../Handlers/StartNewSessionHandler.cs | 32 +++++++++++++++ Sledgemapper.Api/Hubs/SledgemapperHub.cs | 15 +++++-- Sledgemapper.Api/Models/Session.cs | 17 ++++++++ Sledgemapper.Api/MyDatabase.db | Bin 28672 -> 0 bytes Sledgemapper.Api/MyDatabase.db-shm | Bin 32768 -> 0 bytes .../Notifications/NewSessionNotification.cs | 8 ++++ Sledgemapper.Api/Startup.cs | 4 +- Sledgemapper.Api/sledgemapper.db | Bin 20480 -> 0 bytes Sledgemapper/CommunicationManager.cs | 28 ++++++++++--- Sledgemapper/IMapApi.cs | 7 ++++ Sledgemapper/Sledgemapper.cs | 37 ++++-------------- Sledgemapper/UI/MainWidget.Generated.cs | 2 +- Sledgemapper/UI/mainwidget.xml | 2 +- 16 files changed, 135 insertions(+), 62 deletions(-) create mode 100644 Sledgemapper.Api/Commands/NewSessionCommand.cs delete mode 100644 Sledgemapper.Api/Controllers/IdentityController.cs create mode 100644 Sledgemapper.Api/Handlers/StartNewSessionHandler.cs create mode 100644 Sledgemapper.Api/Models/Session.cs delete mode 100644 Sledgemapper.Api/MyDatabase.db delete mode 100644 Sledgemapper.Api/MyDatabase.db-shm create mode 100644 Sledgemapper.Api/Notifications/NewSessionNotification.cs delete mode 100644 Sledgemapper.Api/sledgemapper.db diff --git a/Sledgemapper.Api/Commands/NewSessionCommand.cs b/Sledgemapper.Api/Commands/NewSessionCommand.cs new file mode 100644 index 0000000..bdd19e8 --- /dev/null +++ b/Sledgemapper.Api/Commands/NewSessionCommand.cs @@ -0,0 +1,15 @@ +using MediatR; + +namespace Sledgemapper.Api.Commands +{ + public class NewSessionCommand : IRequest + { + public string SessionName { get; set; } + public int UserId { get; } + public NewSessionCommand(string sessionName, int userId) + { + SessionName = sessionName; + UserId = userId; + } + } +} \ No newline at end of file diff --git a/Sledgemapper.Api/Controllers/IdentityController.cs b/Sledgemapper.Api/Controllers/IdentityController.cs deleted file mode 100644 index d542dc3..0000000 --- a/Sledgemapper.Api/Controllers/IdentityController.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Linq; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Authorization; - -namespace Sledgemapper.Api.Controllers -{ - [Route("identity")] -[Authorize] -public class IdentityController : ControllerBase -{ - [HttpGet] - public IActionResult Get() - { - return new JsonResult(from c in User.Claims select new { c.Type, c.Value }); - } -} - -} \ No newline at end of file diff --git a/Sledgemapper.Api/Controllers/SessionController.cs b/Sledgemapper.Api/Controllers/SessionController.cs index 55f3b9f..43ef61b 100644 --- a/Sledgemapper.Api/Controllers/SessionController.cs +++ b/Sledgemapper.Api/Controllers/SessionController.cs @@ -1,6 +1,7 @@ using MediatR; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Sledgemapper.Api.Commands; using Sledgemapper.Api.Handlers; using Sledgemapper.Shared.Entities; using System.Threading.Tasks; @@ -8,13 +9,22 @@ using System.Threading.Tasks; namespace Sledgemapper.Api.Controllers { [Authorize] - [Route("[controller]/{sessionName}")] + [Route("[controller]/{sessionName}")] public class SessionController : ControllerBase { private readonly IMediator _mediator; public SessionController(IMediator mediator) { _mediator = mediator; } + [HttpPost] + public async Task Post(string sessionName) + { + var userId = int.Parse(HttpContext.User.Identity.Name); + + var result = await _mediator.Send(new NewSessionCommand(sessionName, userId)); + + } + [HttpPost("tile")] public async Task Post(string sessionName, [FromBody]Tile tile) { diff --git a/Sledgemapper.Api/Handlers/StartNewSessionHandler.cs b/Sledgemapper.Api/Handlers/StartNewSessionHandler.cs new file mode 100644 index 0000000..df125d6 --- /dev/null +++ b/Sledgemapper.Api/Handlers/StartNewSessionHandler.cs @@ -0,0 +1,32 @@ +using MediatR; +using Sledgemapper.Api.Commands; +using Sledgemapper.Api.Data; +using Sledgemapper.Api.Models; +using System.Threading; +using System.Threading.Tasks; + +namespace Sledgemapper.Api.Handlers +{ + public class StartNewSessionHandler : IRequestHandler + { + private readonly IMediator _mediator; + private readonly MyDbContext _dbcontext; + + public StartNewSessionHandler(IMediator mediator, MyDbContext dbcontext) + { + _mediator = mediator; + _dbcontext = dbcontext; + } + + public async Task Handle(NewSessionCommand notification, CancellationToken cancellationToken) + { + // _dbcontext.MapLogs.Add(new Session + // { + // SessionName = notification.SessionName, + // OwnerUserId = notification.UserId + // }); + await _dbcontext.SaveChangesAsync(); + return true; + } + } +} diff --git a/Sledgemapper.Api/Hubs/SledgemapperHub.cs b/Sledgemapper.Api/Hubs/SledgemapperHub.cs index 84823c3..90824ad 100644 --- a/Sledgemapper.Api/Hubs/SledgemapperHub.cs +++ b/Sledgemapper.Api/Hubs/SledgemapperHub.cs @@ -15,12 +15,15 @@ using Microsoft.AspNetCore.Authorization; namespace SignalRChat.Hubs { + + [Authorize] public class SledgemapperHub : Hub { - public SledgemapperHub() { - - } + public SledgemapperHub() + { + + } private static Dictionary _sessions = new Dictionary(); public List Colors = new List{"CC0000", "CC3300", @@ -113,6 +116,10 @@ namespace SignalRChat.Hubs public async Task NewSession(string sessionName, string initials) { + + var userId = int.Parse(Context.User.Identity.Name); + + // var user = this.Context.GetHttpContext().; var session = new Session(); session.Colors = new List(Colors); session.Colors.Shuffle(); @@ -120,7 +127,7 @@ namespace SignalRChat.Hubs session.Players.Add(player); _sessions.Add(sessionName, session); - + await Groups.AddToGroupAsync(Context.ConnectionId, sessionName); return session; } diff --git a/Sledgemapper.Api/Models/Session.cs b/Sledgemapper.Api/Models/Session.cs new file mode 100644 index 0000000..8416f42 --- /dev/null +++ b/Sledgemapper.Api/Models/Session.cs @@ -0,0 +1,17 @@ +using System; +using System.ComponentModel.DataAnnotations; + +namespace Sledgemapper.Api.Models +{ + public class Session + { + [Key] + public int SessionId { get; set; } + + [Required] + public string SessionName{get;set;} + + [Required] + public int OwnerUserId { get; set; } + } +} diff --git a/Sledgemapper.Api/MyDatabase.db b/Sledgemapper.Api/MyDatabase.db deleted file mode 100644 index 06b37ec19754bacdca5ff408f89e1103d1a7e1f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28672 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 F{{!ZWpbh{4 diff --git a/Sledgemapper.Api/MyDatabase.db-shm b/Sledgemapper.Api/MyDatabase.db-shm deleted file mode 100644 index 17fbfc183dfcc01ab12ed52a5da7617e1d396c10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI*b#TyT7{~GNuM}vD6)(^NrNt>)+?`^@T?>U4D_-2@%G`Zp?#^7;*10Pi+nD>9 zJ4@Eyt^e*W)# z6%^%Wrxzvf%u7w%w|j5We>^^{9Y$F9V5unH`|rA3uvsx!%4!aHh$*@LIOl(!ga6Z^ zw0C@ow{!9P7o|gK=Y$ex=VIq59ZEZg{dd@p9*#L^w!;Dzuz&?DU;ztQzycPqfCVgI z0Sj2b0v51<1uS3z3s}Gc7O;Q?EMNf(Sik}nuz&?DU;ztQzycPqfCVgI0Sj2b0v51< z1uS3z3s}Gc7ATVf{kf2z85@2)?XW-@6Bxin{K7at{blUF`*K481#@JS59S<-59Z0J zLN%&WliJj!9t}vL5vionl;*UgH5s&{1D)thSGv=a-t=W4gBeN|BN#$S}Q~C)Ipup zSzXm#J=I%%)n5ZOSVNVi5gMgzjn_m?)>KW`OwHC@%~P%xDqoAWR0Ue0Ra&D$t=C3v z)>dtIf8!U>0v51<1uS3z3s~R~3d9gg1>#7cGF3^W2DPX|67@-@A&qH5I?ZT7E85VO z_H-nZE_9;@z34-~L)cQE$^uaf3}Ohw7|uvWGlp?YU=mZ9#tddLhaBd!fIJqlgk>ye zC97G>IySJ0Eo@^4M{+dBay%z;GN*7FXK)tha2^*#-B8!FK;#0Ka2Z!{C0BDT*K;E` zb1S!VCwFrX_wfJ^@d$f(oFbm$8J^<>Ug8yA;|<>8ZT9gV`}vTM`IOK3lCSxe@A!eA zB5$V)S|ECX-}r;Sf`QK%#j1khl%UG0szlXLE!9zy>ML0d)mTlGu4ZbXR%)ZRYOjvU zR2Owq5A{+X_0s?i(hv>PaE;Vxjq!M1^tZ|tBNv#UNt&W*nxR>mqa4lG0_ACumS~xl zYo%6et=4ISHff8tDg0l7!vYqtfCVgI0Sj2b0v51<1uS3z3s}Gc7O;Q?EMNf(Sik}n Muz&?DaJUHk4Rt5cPXGV_ diff --git a/Sledgemapper.Api/Notifications/NewSessionNotification.cs b/Sledgemapper.Api/Notifications/NewSessionNotification.cs new file mode 100644 index 0000000..31aa937 --- /dev/null +++ b/Sledgemapper.Api/Notifications/NewSessionNotification.cs @@ -0,0 +1,8 @@ +namespace Sledgemapper.Api.Handlers +{ + public class NewSessionNotification : BaseNotification + { + public int UserId { get; } + public NewSessionNotification(string sessionName, int userId) : base(sessionName) => UserId = userId; + } +} \ No newline at end of file diff --git a/Sledgemapper.Api/Startup.cs b/Sledgemapper.Api/Startup.cs index 2a8ea2f..d442c73 100644 --- a/Sledgemapper.Api/Startup.cs +++ b/Sledgemapper.Api/Startup.cs @@ -19,7 +19,7 @@ using Microsoft.AspNetCore.Authentication.JwtBearer; using System.Text; using AutoMapper; using Sledgemapper.Services; - +using System.Security.Claims; namespace SignalRChat { @@ -79,6 +79,8 @@ namespace SignalRChat // return unauthorized if user no longer exists context.Fail("Unauthorized"); } + context.HttpContext.User.Claims.Append(new Claim(ClaimTypes.Name, user.Username)); + context.HttpContext.User.Claims.Append(new Claim(ClaimTypes.NameIdentifier, user.Id.ToString())); return Task.CompletedTask; } }; diff --git a/Sledgemapper.Api/sledgemapper.db b/Sledgemapper.Api/sledgemapper.db deleted file mode 100644 index f0e9dd6f046088b1eee1f6bd5b4364414ac3331e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 zcmeI&!EV|x7zc10XuBb0?1s3kR!*&2Ap+eHx6vxwP(xslPUWygDR@;TAT%-3dR(>F znY3rw6YR8S*l}NgOn~44ivFKsu#NpW{y`1_y6-JtN%1)dN1hTD_MCCfUJJn(OHtXQ zl0@9jBn^7zOZ9El6f2$yE%%pYv`_5WuiOvqCshy-fB*y_009U<00Izz00eeUpq<&z zpPcZX@@|GQx*O81mK({tsT}v$n|l`>v+kI}sh?Y>SQ~pZ_D1rQW*$ErrVsLk0{>o^ zzxj^G;nHX<0$BXg3DBXxNVV*6awo4{6TC+b&Dt6|d$P1ANx7b&|kiu_<~)5+<=F|R4zB4sk7HIbpGXv~(^o%_kw zsW)F_Uu~P`k7T60(L@)-X8m7R%N~Eb<_Gy|l|Qs*LauARY5KSGvxwgLkqW~5jh(4g zzl~#-IFp>Q=*r&LIkzNQ(oMA5VKA8X)dv~ItZQj$YmL-?{$rIhe>{+17atLCs)AYD z-MEfxZ0t_crS>Gg+%zgY_nXmyfB*y_009U<00Izz00bZa0SG|gkqW%v=~}*ADwhnS z^r~DjjF)GwKlYXH4J$>XSj*DBc1Rwwb2tWV=5P$## LAOHafECl`m-T~(1 diff --git a/Sledgemapper/CommunicationManager.cs b/Sledgemapper/CommunicationManager.cs index 041aa38..d94bb00 100644 --- a/Sledgemapper/CommunicationManager.cs +++ b/Sledgemapper/CommunicationManager.cs @@ -17,6 +17,7 @@ namespace Sledgemapper public HubConnection Connection { get; private set; } public Session SessionData; private ChannelsQueue Queue = new ChannelsQueue(); + private AuthenticateResponse _authenticateResponse; public CommunicationManager(Session sessionData) { @@ -24,12 +25,15 @@ namespace Sledgemapper Connection = new HubConnectionBuilder() .WithAutomaticReconnect() - .WithUrl("http://localhost:5000/SledgemapperHub") + .WithUrl("http://localhost:5000/SledgemapperHub", options => + { + options.AccessTokenProvider = () => Task.FromResult(_authenticateResponse.Token); + }) // .WithUrl("http://hub.michelescandura.com:5000/SledgemapperHub") .Build(); - + var httpClientHandler = new HttpClientHandler(); @@ -58,7 +62,7 @@ namespace Sledgemapper var p = SessionData.Players.FirstOrDefault(m => m.ConnectionId == player.ConnectionId); if (p != null) { - p.Position = player.Position; + p.Position = player.Position; } }); @@ -100,16 +104,28 @@ namespace Sledgemapper var p = SessionData.Players.FirstOrDefault(m => m.ConnectionId == player.ConnectionId); if (p is null) { - SessionData.Players.Add(player); + SessionData.Players.Add(player); } else { - p.Color = player.Color; - p.Position = player.Position; + p.Color = player.Color; + p.Position = player.Position; } }); } + public async Task Register(RegisterModel registerModel) + { + var result = await Api.Register(registerModel); + return result.IsSuccessStatusCode; + } + + public async Task Login(AuthenticateModel authenticateModel) + { + _authenticateResponse = await Api.Authenticate(authenticateModel); + return _authenticateResponse; + } + private async Task Execute(Func call) { await Policy diff --git a/Sledgemapper/IMapApi.cs b/Sledgemapper/IMapApi.cs index 08423d4..01af572 100644 --- a/Sledgemapper/IMapApi.cs +++ b/Sledgemapper/IMapApi.cs @@ -3,6 +3,7 @@ using Sledgemapper.Shared.Entities; using System; using System.Collections.Generic; using System.Linq; +using System.Net.Http; using System.Text; using System.Threading.Tasks; @@ -27,5 +28,11 @@ namespace Sledgemapper [Delete("/session/{sessionName}/overlay")] Task DeleteOverlay([Body] Overlay overlay, string sessionName); + + [Post("/users/register")] + Task Register([Body] RegisterModel registerModel); + + [Post("/users/authenticate")] + Task Authenticate([Body] AuthenticateModel registerModel); } } \ No newline at end of file diff --git a/Sledgemapper/Sledgemapper.cs b/Sledgemapper/Sledgemapper.cs index 73630fc..e660503 100644 --- a/Sledgemapper/Sledgemapper.cs +++ b/Sledgemapper/Sledgemapper.cs @@ -243,7 +243,8 @@ namespace Sledgemapper { return; } - GraphicsDevice.Clear(new Color(24,118,157)); + //GraphicsDevice.Clear(new Color(24,118,157)); + GraphicsDevice.Clear(Color.LightGray); var visibleTilesX = GraphicsDevice.Viewport.Width / _state._tileSize + 1; var visibleTilesY = GraphicsDevice.Viewport.Height / _state._tileSize + 1; @@ -518,20 +519,8 @@ namespace Sledgemapper var successful = false; try { - var httpClientHandler = new HttpClientHandler(); - -#if DEBUG - httpClientHandler.ServerCertificateCustomValidationCallback = - (message, certificate, chain, sslPolicyErrors) => true; -#endif - - var identiyApi = RestService.For( - new HttpClient(httpClientHandler) - { - BaseAddress = new Uri("http://localhost:4000") - }); - - _authResponse = await identiyApi.Authenticate(new AuthenticateModel + + _authResponse = await _communicationManager.Login(new AuthenticateModel { Username = localContent.TxtEmail.Text, Password = localContent.TxtPassword.Text @@ -577,19 +566,7 @@ namespace Sledgemapper var successful = false; try { - var httpClientHandler = new HttpClientHandler(); - -#if DEBUG - httpClientHandler.ServerCertificateCustomValidationCallback = - (message, certificate, chain, sslPolicyErrors) => true; -#endif - - var identiyApi = RestService.For( - new HttpClient(httpClientHandler) - { - BaseAddress = new Uri("http://localhost:4000") - }); - var result = await identiyApi.Register(new RegisterModel + var result = await _communicationManager.Register(new RegisterModel { Username = localContent.TxtEmail.Text, Password = localContent.TxtPassword.Text, @@ -597,9 +574,9 @@ namespace Sledgemapper LastName = localContent.TxtLastname.Text, Initials = localContent.TxtInitials.Text }); - if (result.IsSuccessStatusCode) + if (result) { - _authResponse = await identiyApi.Authenticate(new AuthenticateModel + _authResponse = await _communicationManager.Login(new AuthenticateModel { Username = localContent.TxtEmail.Text, Password = localContent.TxtPassword.Text diff --git a/Sledgemapper/UI/MainWidget.Generated.cs b/Sledgemapper/UI/MainWidget.Generated.cs index eb99e0c..d0b5cc3 100644 --- a/Sledgemapper/UI/MainWidget.Generated.cs +++ b/Sledgemapper/UI/MainWidget.Generated.cs @@ -1,4 +1,4 @@ -/* Generated by MyraPad at 10/11/2020 15:49:08 */ +/* Generated by MyraPad at 11/11/2020 09:47:53 */ using Myra.Graphics2D; using Myra.Graphics2D.TextureAtlases; using Myra.Graphics2D.UI; diff --git a/Sledgemapper/UI/mainwidget.xml b/Sledgemapper/UI/mainwidget.xml index 37eadde..8dfb054 100644 --- a/Sledgemapper/UI/mainwidget.xml +++ b/Sledgemapper/UI/mainwidget.xml @@ -23,7 +23,7 @@ - +