public IActionResult EditSong([FromBody] RequestSongModel requestData)
        {
            if (User.Identity.IsAuthenticated)
            {
                var requestModel = new EditWebRequestRequestModel
                {
                    SongRequestId      = int.Parse(requestData.SongRequestId),
                    Title              = requestData.Title,
                    Artist             = requestData.Artist,
                    SelectedInstrument = requestData.SelectedInstrument,
                    IsVip              = requestData.IsVip,
                    IsSuperVip         = requestData.IsSuperVip,
                    Username           = User.Identity.Name.ToLower(),
                    IsMod              = _modService.IsUserModerator(User.Identity.Name)
                };

                var editRequestResult =
                    _playlistApiClient.EditWebRequest(requestModel).Result.EditResult;

                switch (editRequestResult)
                {
                case EditRequestResult.Success:
                    return(Ok());

                case EditRequestResult.NoRequestEntered:
                    return(BadRequest(new
                    {
                        Message = "You haven't entered a request. Please enter a Song name and/or Artist"
                    }));

                case EditRequestResult.NotYourRequest:
                    return(BadRequest(new
                    {
                        Message = "This doesn't seem to be your request. Please try again"
                    }));

                case EditRequestResult.RequestAlreadyRemoved:
                    return(BadRequest(new
                    {
                        Message = "It seems like this song has been played or removed from the list"
                    }));

                default:
                    return(BadRequest(new
                    {
                        Message = "An error occurred, please wait until the issue is resolved"
                    }));
                }
            }

            return(BadRequest(new { Message = "It looks like you're not logged in, log in and try again" }));
        }
        public IActionResult RequestSong([FromBody] RequestSongModel requestData)
        {
            if (User.Identity.IsAuthenticated)
            {
                var requestModel = new AddWebSongRequest
                {
                    SongRequestId      = int.Parse(requestData.SongRequestId),
                    Title              = requestData.Title,
                    Artist             = requestData.Artist,
                    SelectedInstrument = requestData.SelectedInstrument,
                    IsVip              = requestData.IsVip,
                    IsSuperVip         = requestData.IsSuperVip,
                    Username           = User.Identity.Name
                };

                var requestResult = _playlistApiClient.AddWebRequest(requestModel).Result.Result;

                var maxRegularRequests = _playlistApiClient.GetMaxUserRequests().Result.MaxRequests;

                switch (requestResult)
                {
                case AddRequestResult.Success:
                    return(Ok());

                case AddRequestResult.MaximumRegularRequests:
                    return(BadRequest(new
                    {
                        Message =
                            $"You cannot have more than {maxRegularRequests} regular request{(maxRegularRequests > 1 ? "s" : "")}"
                    }));

                case AddRequestResult.PlaylistClosed:
                    return(BadRequest(new
                    {
                        Message =
                            "The playlist is currently closed, you can still use a VIP token to request though!"
                    }));

                case AddRequestResult.PlaylistVeryClosed:
                    return(BadRequest(new
                    {
                        Message =
                            "The playlist is completely closed, please wait until the playlist opens to request a song"
                    }));

                case AddRequestResult.UnSuccessful:
                    return(BadRequest(new
                    {
                        Message = "An error occurred, please wait until the issue is resolved"
                    }));

                case AddRequestResult.NoRequestEntered:
                    return(BadRequest(new
                    {
                        Message = "You haven't entered a request. Please enter a Song Name and/or Artist"
                    }));
                }
            }

            return(BadRequest(new { Message = "It looks like you're not logged in, log in and try again" }));
        }