public async Task <ActionResult <string> > CreateGroupInviteAsync(string groupIdentifier) { try { if (await IsUserValidAsync()) { var groupInviteIdentifier = await GroupInviteModel.CreateNewGroupInviteAsync( groupIdentifier, ExtractUserIdFromToken(), RepositoryManager); return(Ok(groupInviteIdentifier)); } else { return(Unauthorized()); } } catch (InvalidTokenException err) { return(BadRequest(new InvalidTokenException(err.InvalidTokenType, err.ErrorMessage))); } catch (UserNotGroupMemberException) { return(Forbid()); } catch (Exception err) { LogException(err); return(Problem()); } }
public async Task <IActionResult> Invite(string groupid) { // Get current user User user = await _userManager.GetUserAsync(User); GroupInviteModel model = new GroupInviteModel() { Group = groupid }; return(View(model)); }
public async Task <IActionResult> Invite(GroupInviteModel model) { if (!ModelState.IsValid) { return(View(model)); } // Get current user User user = await _userManager.GetUserAsync(User); Group group = _context.Groups.FirstOrDefault(g => g.Id == model.Group); User inviteuser = await _userManager.FindByNameAsync(model.InviteUser); TaskResult result = await GroupManager.AddInvite(group, user, inviteuser); StatusMessage = result.Info; return(RedirectToAction(nameof(View), new { groupid = group.Id })); }
public async Task <ActionResult <GroupDownloadModel> > ValidateGroupInviteAsync(string groupInviteIdentifier) { try { if (await IsUserValidAsync()) { var groupAssociatedWithInvite = await GroupInviteModel.CheckUserGroupInviteValidAsync( groupInviteIdentifier, ExtractUserIdFromToken(), RepositoryManager); if (groupAssociatedWithInvite != null) { return(Ok(MapEntityToDownloadModel <Domain.Entities.Group, GroupDownloadModel>(groupAssociatedWithInvite))); } else { return(BadRequest()); } } else { return(Unauthorized()); } } catch (InvalidTokenException err) { return(BadRequest(new InvalidTokenException(err.InvalidTokenType, err.ErrorMessage))); } catch (UserAlreadyGroupMemberException err) { return(BadRequest(new UserAlreadyGroupMemberException(err.ErrorMessage, err.ErrorData))); } catch (Exception err) { LogException(err); return(Problem()); } }
public async Task <ActionResult <string> > JoinGroupWithInviteAsync(string groupInviteIdentifier) { try { if (await IsUserValidAsync()) { if (string.IsNullOrWhiteSpace(groupInviteIdentifier)) { return(BadRequest()); } var group = await GroupInviteModel.JoinGroupByInviteAsync( groupInviteIdentifier, ExtractUserIdFromToken(), RepositoryManager); return(Ok(MapEntityToDownloadModel <Domain.Entities.Group, GroupDownloadModel>(group))); } else { return(Unauthorized()); } } catch (InvalidTokenException err) { return(BadRequest(new InvalidTokenException(err.InvalidTokenType, err.ErrorMessage))); } catch (UserAlreadyGroupMemberException err) { return(BadRequest(new UserAlreadyGroupMemberException(err.ErrorMessage, err.ErrorData))); } catch (Exception err) { LogException(err); return(Problem()); } }