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