Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }