コード例 #1
0
        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 }));
        }
コード例 #2
0
        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());
        }