Пример #1
0
        public async Task <ActionResult <GetMembersResponse> > getAllMembers(GetMembersRequest request)
        {
            if (request.Username == "")
            {
                return(StatusCode(StatusCodes.Status400BadRequest, "Username cannot be empty!"));
            }


            Users user = await userGymMovesRepository.getUser(request.Username);

            if (user == null)
            {
                return(StatusCode(StatusCodes.Status404NotFound, "User does not exist!"));
            }

            if (user.UserType != UserTypes.Manager)
            {
                return(StatusCode(StatusCodes.Status401Unauthorized, "User is not a manager!"));
            }

            if (user.GymIdForeignKey != request.GymId)
            {
                return(StatusCode(StatusCodes.Status401Unauthorized, "Managers can only see the unregistered users of their own gym!"));
            }

            GymMember[] unregisteredUsers = await gymMemberRepository.getGymMembers(request.GymId);

            Users[] registeredUsers = await userGymMovesRepository.getAllUsers(request.GymId);

            if (unregisteredUsers.Length > 0 || registeredUsers.Length > 0)
            {
                GetMembersResponse[] responses  = UserMappers.MemberToMemberResponse(unregisteredUsers);
                GetMembersResponse[] responses2 = UserMappers.UserToMemberResponse(registeredUsers);

                var all = new GetMembersResponse[responses.Length + responses2.Length];
                responses.CopyTo(all, 0);
                responses2.CopyTo(all, responses.Length);
                return(Ok(all));
            }
            else
            {
                return(Ok(unregisteredUsers));
            }
        }