public async Task <IActionResult> Create([FromForm] int expires, [FromForm] Guid sessionId) { var user = await _userManager.GetUserAsync(User); if (user == null) { return(Unauthorized("You're not logged in")); } if (!await _grantService.Exists(sessionId, user.Id)) { return(Unauthorized("You're not a member of this session")); } var session = await _context.RtcSessions.FirstOrDefaultAsync(s => s.Id == sessionId); if (session == null) { return(NotFound("Session not found")); } if (expires < 0 || expires > MaxInviteExpires) { return(BadRequest("Invalid expire time")); } var _ = await _inviteService.CreateAsync(session, user, (uint)expires); return(RedirectToPage("/Details", new { area = "RtcSessions", id = sessionId })); }
public async Task <IActionResult> OnGet(string token) { if (token == null) { return(BadRequest("No invite token provided")); } Token = token; if (!Base58Encoding.TryDecode(token, out var bigId)) { return(BadRequest("Invalid Invite Code Format")); } if (bigId <= 0 || bigId >= uint.MaxValue) { return(BadRequest("Invalid Invite Code Value")); } var invite = await _context.RtcSessionInvites .Include(v => v.Creator) .Include(v => v.Session) .FirstOrDefaultAsync(v => v.Id == (uint)bigId); if (invite == null) { return(NotFound()); } Invite = invite; Session = invite.Session; var user = await _userManager.GetUserAsync(User); Joined = user != null && await _grantService.Exists(invite.Session.Id, user.Id); return(Page()); }