public void Edit(EditWebRequestRequestModel model) { _editRequestRepository.Edit(model.SongRequestId, string.IsNullOrWhiteSpace(model.Artist) && string.IsNullOrWhiteSpace(model.SelectedInstrument) ? model.Title : $"{model.Artist} - {model.Title} ({model.SelectedInstrument})", model.Username, model.IsMod); }
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 async Task <EditWebRequestResponse> EditWebRequest(EditWebRequestRequestModel editWebRequestRequestModel) { try { var result = await _playlistClient.PostAsync("EditWebRequest", HttpClientHelper.GetJsonData(editWebRequestRequestModel)); return(JsonConvert.DeserializeObject <EditWebRequestResponse>(await result.Content.ReadAsStringAsync())); } catch (Exception e) { return(HttpClientHelper.LogError <EditWebRequestResponse>(_logger, e, new object[] { editWebRequestRequestModel })); } }
public IActionResult EditWebRequest([FromBody] EditWebRequestRequestModel editWebRequestRequestModel) { try { var result = _playlistService.EditWebRequest(editWebRequestRequestModel); // Need a new EditWebRequestResponse model to hold the edit result enum var responseModel = new EditWebRequestResponse { EditResult = result }; return(new JsonResult(responseModel)); } catch (Exception e) { _logger.LogError(e, "Error in EditWebRequest", editWebRequestRequestModel); return(BadRequest()); } }
public EditRequestResult EditWebRequest(EditWebRequestRequestModel editWebRequestRequestModel) { if (editWebRequestRequestModel == null) { return(EditRequestResult.NoRequestEntered); } try { _editRequestCommand.Edit(editWebRequestRequestModel); UpdateFullPlaylist(); return(EditRequestResult.Success); } catch (UnauthorizedAccessException) { return(EditRequestResult.NotYourRequest); } catch (Exception) { return(EditRequestResult.UnSuccessful); } }
public bool EditRequest(string username, string commandText, bool isMod, out string songRequestText, out bool syntaxError) { if (string.IsNullOrWhiteSpace(commandText)) { songRequestText = string.Empty; syntaxError = true; return(false); } var commandTextTerms = commandText.Trim().Split(" "); SongRequestType editRequestType; EditRequestResult result; // If the command text doesn't parse, we should attempt to edit a regular request if (!int.TryParse(commandTextTerms[0].Trim(), out var playlistIndex)) { songRequestText = commandText; // edit regular request if it exists if (_getUsersCurrentRequestCountsQuery.GetUsersCurrentRequestCounts(username, SongRequestType.Regular) == 1) { editRequestType = SongRequestType.Regular; } // if true return, otherwise attempt to edit and refund a single vip else if (_getUsersCurrentRequestCountsQuery.GetUsersCurrentRequestCounts(username, SongRequestType.Vip) == 1) { editRequestType = SongRequestType.Vip; } else if (_getUsersCurrentRequestCountsQuery.GetUsersCurrentRequestCounts(username, SongRequestType.SuperVip) == 1) { editRequestType = SongRequestType.SuperVip; } else { songRequestText = string.Empty; syntaxError = true; return(false); } var formattedRequest = FormattedRequest.GetFormattedRequest(songRequestText); var songRequestId = _getSingleSongRequestIdRepository.Get(username, editRequestType); var editRequestModel = new EditWebRequestRequestModel { SongRequestId = songRequestId, Title = formattedRequest?.SongName ?? songRequestText, Artist = formattedRequest?.SongArtist ?? string.Empty, SelectedInstrument = formattedRequest?.InstrumentName ?? string.Empty, IsVip = editRequestType == SongRequestType.Vip, IsSuperVip = editRequestType == SongRequestType.SuperVip, Username = username, IsMod = isMod }; result = EditWebRequest(editRequestModel); } else { songRequestText = string.Join(' ', commandTextTerms); // Edit request at position playlistIndex var songRequest = _getUsersRequestAtPlaylistIndexQuery.Get(username, playlistIndex, _currentRequest.isSuperVip || _currentRequest.isVip); if (songRequest == null) { syntaxError = true; songRequestText = string.Empty; return(false); } var formattedRequest = FormattedRequest.GetFormattedRequest(commandText); var editRequestModel = new EditWebRequestRequestModel { SongRequestId = songRequest.SongRequestId, Title = formattedRequest?.SongName ?? songRequestText, Artist = formattedRequest?.SongArtist ?? string.Empty, SelectedInstrument = formattedRequest?.InstrumentName ?? string.Empty, IsVip = songRequest.IsVip, IsSuperVip = songRequest.IsSuperVip, Username = username, IsMod = isMod }; result = EditWebRequest(editRequestModel); } switch (result) { case EditRequestResult.NoRequestEntered: case EditRequestResult.NotYourRequest: case EditRequestResult.RequestAlreadyRemoved: syntaxError = true; break; default: syntaxError = false; break; } return(result == EditRequestResult.Success); }