public override async Task OnConnectedAsync() { IHubUserModel user = new HubUserModel { Id = Context.User.Claims.First(i => i.Type == ClaimTypes.Name).Value.ToInt(0) }; user.ConnectionId.Add(Context.ConnectionId); await base.OnConnectedAsync().ConfigureAwait(false); var addNewUser = await HubConnectedUserStore.Add(user).ConfigureAwait(false); await Groups.AddToGroupAsync(Context.ConnectionId, "connection_" + Context.ConnectionId).ConfigureAwait(false); await Groups.AddToGroupAsync(Context.ConnectionId, "user_" + user.Id).ConfigureAwait(false); var connectedUsersList = await HubConnectedUserStore.ConnectedUserList().ConfigureAwait(false); await Clients.Group("connection_" + Context.ConnectionId).SendAsync("GiveConnectedUsersList", connectedUsersList).ConfigureAwait(false); if (addNewUser) { await Clients.All.SendAsync("ConnectedNewClient", user).ConfigureAwait(false); } }
public static HubUserModel GetHubUser(this ICurrentUserService currentUserService) { var hubUser = new HubUserModel(); var user = currentUserService.GetUser(); hubUser.Sub = user.Sub(); hubUser.Email = user.Email(); hubUser.Name = user.Name(); hubUser.Contractors = user.Contractors(); hubUser.OperativePayrollNumber = user.PayrollNumber(); if (double.TryParse(user.FindFirst(CustomClaimTypes.RaiseLimit)?.Value, out var number)) { hubUser.RaiseLimit = number.ToString(CultureInfo.InvariantCulture); } if (double.TryParse(user.FindFirst(CustomClaimTypes.VaryLimit)?.Value, out number)) { hubUser.VaryLimit = number.ToString(CultureInfo.InvariantCulture); } return(hubUser); }
public void GetHubUser() { // Arrange var hubUser = new HubUserModel { Sub = "222222", Email = "*****@*****.**", Name = "Bob Repairs", VaryLimit = "250", RaiseLimit = "250", OperativePayrollNumber = "payrollNumber", Contractors = new List <string> { "contractor1", "contractor2" } }; _mockCurrentUserService.SetUser(hubUser.Sub, hubUser.Email, hubUser.Name, hubUser.VaryLimit, hubUser.RaiseLimit, hubUser.Contractors, hubUser.OperativePayrollNumber); var response = _classUnderTest.GetHubUser() as OkObjectResult; response.Should().NotBeNull(); response.StatusCode.Should().Be(200); response.Value.Should().BeEquivalentTo(hubUser); }