public async Task <Session> StartOrJoin(StartJoinSessionRequest request) { if (string.IsNullOrEmpty(request.SessionId)) { //Create Session var session = new Session(); if (request.User != null) { session.Users.Add(request.User); await _context.AddAsync(session); await _context.SaveChangesAsync(); } return(session); } else { //Look up and join session var session = await _context.FindAsync <Session>(request.SessionId); session.Users.Add(request.User); _context.Update(session); await _context.SaveChangesAsync(); return(session); } }
async Task StartOrJoinSession() { _activeUser = new User { Id = RandomGenerators.GenerateRandomId(), Name = _userName }; var request = new StartJoinSessionRequest { SessionId = SessionId, User = _activeUser }; //Call Start Or Join var session = await Http.PostJsonAsync <Session>("Session/startOrJoin", request); var action = new LoadSessionAction(_activeUser, session); Dispatcher.Dispatch(action); NavManager.NavigateTo($"/activeSession/{SessionState.Value.Session.Id}"); }