public async Task <IActionResult> InviteUser(InvitationForCreationDto invitationForCreation) { if (!await _users.UserExist(invitationForCreation.UserId) || !await _users.UserExist(invitationForCreation.InvitorId) || !await _repo.OrganizationExist(invitationForCreation.OrganizationId)) { return(BadRequest("Invalid Data")); } var inviter = await _users.GetUser(invitationForCreation.InvitorId); var user = await _users.GetUser(invitationForCreation.UserId); var organization = await _repo.GetOrganization(invitationForCreation.OrganizationId); if (!await _repo.IsAdmin(organization, inviter)) { return(BadRequest("Not Authorized To Invite New Member")); } if (await _invitations.InvitationExist(organization.Id, user.Id)) { return(Conflict("Invitation Already Exist")); } Invitation invitation = new Invitation { User = user, Organization = organization, UserId = user.Id, OrganizationId = organization.Id }; await _invitations.Add(invitation); //TODO, return list of all invitations that belong to this organization var invitations = await _invitations.GetInvitationsByOrganization(organization.Id); var invitationsToReturn = new List <InvitationForListDto>(); foreach (var item in invitations) { var invitationToReturn = new InvitationForListDto { Organization = _mapper.Map <OrganizationForListDto>(item.Organization), User = _mapper.Map <UserForListDto>(item.User) }; invitationsToReturn.Add(invitationToReturn); } return(Ok(invitationsToReturn)); }
public async Task <IActionResult> GetInvitations(int id) { if (!await _repo.OrganizationExist(id)) { return(BadRequest("Organization does not exist")); } var invitations = await _invitations.GetInvitationsByOrganization(id); Console.WriteLine(invitations); var invitationsToReturn = new List <InvitationForListDto>(); foreach (var item in invitations) { var invitationToReturn = new InvitationForListDto { Organization = _mapper.Map <OrganizationForListDto>(item.Organization), User = _mapper.Map <UserForListDto>(item.User) }; invitationsToReturn.Add(invitationToReturn); } Console.WriteLine(invitationsToReturn); return(Ok(invitationsToReturn)); }