public async Task HandleAsync(DetailsLyricsInput input, IDetailsLyricsOutputHandler <T> output) { var lyric = await _lyricRepository.GetAsync(input.Id); var result = new DetailsLyricsOutput(lyric.Id, lyric.Text, lyric.Title, lyric.Singer, lyric.AuthorId, lyric.Author.Username); output.Success(result); }
public async Task HandleAsync(DeleteLyricInput input, IDeleteLyricOutputHandler <T> output) { var dbLyric = await _lyricRepository.GetAsync(input.Id); if (dbLyric == null) { output.BadRequest("The given lyric does not exist"); return; } try { await _lyricRepository.DeleteAsync(dbLyric); output.Success($"Successfully deleted Lyric {dbLyric.Title}"); } catch (Exception) { output.BadRequest("Deleting lyric failed."); } }
public async Task HandleAsync(EditLyricInput input, IEditLyricOutputHandler <T> output) { var author = await _userRepository.GetByUsernameAsync(input.AuthorUsername); if (author == null) { output.BadRequest("The given author does not exist"); return; } var dbLyric = await _lyricRepository.GetAsync(input.Id); if (dbLyric == null) { output.BadRequest("The given lyric does not exist"); return; } if (dbLyric.AuthorId != author.Id) { output.BadRequest("The given lyric does not belong to you"); return; } try { dbLyric.Title = input.Title; dbLyric.Text = input.Text; dbLyric.Singer = input.Singer; await _lyricRepository.UpdateAsync(dbLyric); output.Success(new EditLyricOutput(dbLyric.Id, dbLyric.Text, dbLyric.Title, dbLyric.Singer)); } catch (Exception) { output.BadRequest("Editing lyric failed."); } }