protected override async Task OnInitializedAsync() { hubConnection = new HubConnectionBuilder() .WithUrl(_nav.ToAbsoluteUri("/pbhub")) .Build(); hubConnection.On <int>("VisitorJoined", (count) => { pickBanStatus.Visitors = count; StateHasChanged(); }); hubConnection.On <int>("VisitorLeft", (count) => { pickBanStatus.Visitors = count; StateHasChanged(); }); hubConnection.On <PickbanLockinfo>("CmdrLocked", (pb) => { pickBanStatus.Lock(pb); StateHasChanged(); }); hubConnection.On <List <PickbanLockinfo> >("ConnectInfo", (pb) => { pickBanStatus.Reset(); foreach (var info in pb) { pickBanStatus.Lock(info); } StateHasChanged(); }); await hubConnection.StartAsync(); _logger.LogInformation($"gernerating guid: {guid ?? "null"}"); if (!Guid.TryParse(guid, out Guid)) { Guid = Guid.NewGuid(); _logger.LogInformation($"gernerating guid: {Guid}"); _nav.NavigateTo($"pickban/{mode}/{Guid}"); await hubConnection.SendAsync("CreateNewPage", Guid); } else { await hubConnection.SendAsync("VisitPage", Guid); } pickBanStatus = new PickbanStatus(Guid); }
public async Task CreateNewPage(Guid guid) { logger.LogInformation($"create new page {guid}"); Context.Items.Clear(); Context.Items.Add("guid", guid); PickbanStatus model = new PickbanStatus(guid); if (!Pbs.TryAdd(guid, model)) { Pbs[guid].Reset(); } await Groups.AddToGroupAsync(Context.ConnectionId, guid.ToString()); await Clients.Group(guid.ToString()).SendAsync("VisitorJoined", 1); }