Example #1
0
        public ReleasePlayerResponse ReleasePlayer(ReleasePlayerRequest request)
        {
            if (!_currentUserId.HasValue)
            {
                throw new InvalidOperationException("No access");
            }

            var user = _usersService.GetUserById(new GetUserByIdRequest
            {
                UserId = _currentUserId.Value
            });

            var command = new TransfersModule.Contract.ReleasePlayerContract.Request()
            {
                ReleasingClubId = request.ReleasingClubId,
                EngagingClubId  = request.EngagingClubId,
                PlayerId        = request.PlayerId,
            };

            if (!AuthorizationService.CanExecuteCommand(user, command))
            {
                throw new InvalidOperationException("You can only release players only from your own club");
            }

            var response = new TransfersApi().Execute(command).Result;

            return(new ReleasePlayerResponse
            {
                TransferInstructionId = response.TransferInstructionId.Value
            });
        }
Example #2
0
 public static bool CanExecuteCommand(GetUserByIdResponse user, TransfersModule.Contract.ReleasePlayerContract.Request command)
 {
     return(user.ClubId == command.ReleasingClubId);
 }