public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } var currentUser = await _userManager.GetUserAsync(User); var sessionId = Guid.NewGuid(); var entry = await _context.RtcSessions.AddAsync(new RtcSession { CreationTime = DateTime.Now, Creator = currentUser, Id = sessionId, Public = Form.Visibility == SessionVisibility.Public, Description = Form.Description, Title = Form.Title }); await _context.SaveChangesAsync(); await _grantService.Create(sessionId, currentUser.Id); return(RedirectToPage("./Details", new { id = entry.Entity.Id })); }
public async Task <IActionResult> OnPost(uint inviteId) { if (inviteId <= 0 || inviteId >= uint.MaxValue) { return(BadRequest("Invite Id out of range")); } var invite = await _context.RtcSessionInvites .FirstOrDefaultAsync(v => v.Id == inviteId); if (invite == null) { return(NotFound("Invite not found")); } var user = await _userManager.GetUserAsync(User); if (user == null) { return(Unauthorized()); } await _grantService.Create(invite.Session, user); return(RedirectToPage("/Details", new { area = "RtcSessions", id = invite.Session.Id })); }
public async Task <IActionResult> Join([FromForm] Guid sessionId) { var session = await _context.RtcSessions .Where(s => s.Id == sessionId) .FirstOrDefaultAsync(); if (session == null) { return(NotFound()); } if (!session.Public) { return(Unauthorized()); } var user = await _userManager.GetUserAsync(User); await _grantService.Create(session, user); return(RedirectToPage("/Details", new { area = "RtcSessions", id = sessionId })); }