public async Task <IActionResult> OnPostAsync() { if (_signInManager.IsSignedIn(User)) { var chatUser = await _userManager.GetUserAsync(User); var group = new MultiuserGroup() { Name = Input.Name, Description = Input.Description, DateCreated = DateTime.Now, IsArchived = false, IsPrivate = !Input.IsPublic, GroupImage = _fileConfiguration.SaveFileFromDefault(_fileConfiguration.DefaultGroupImage) }; await _context.Group.AddAsync(group); await _context.SaveChangesAsync(); var membership = new MultiuserGroupMembership() { ChatUserID = chatUser.Id, GroupID = group.GroupID, IsActiveInGroup = false, IsOnlineInGroup = false, Rank = PermissionRank.OWNER.Ordinal }; await _context.Membership.AddAsync(membership); await _context.SaveChangesAsync(); return(LocalRedirect("/group?groupId=" + group.GroupID)); } else { return(LocalRedirect("/Identity/Account/Login")); } }
private bool JoinRequestSent(MultiuserGroup group, int userId) { return(group.GroupJoinRequests.FirstOrDefault(r => r.ChatUserID == userId) != null); }