public LyricsController( ICreateLyricInputHandler <IActionResult> createLyricInputHandler, ICreateLyricOutputHandler <IActionResult> createLyricOutputHandler, IEditLyricInputHandler <IActionResult> editLyricInputHandler, IEditLyricOutputHandler <IActionResult> editLyricOutputHandler, IDeleteLyricInputHandler <IActionResult> deleteLyricInputHandler, IDeleteLyricOutputHandler <IActionResult> deleteLyricOutputHandler, IDetailsLyricsInputHandler <IActionResult> detailsLyricInputHandler, IDetailsLyricsOutputHandler <IActionResult> detailsLyricOutputHandler, IAllLyricsInputHandler <IActionResult> allLyricsInputHandler, IAllLyricsOutputHandler <IActionResult> allLyricsOutputHandler, IMyLyricsInputHandler <IActionResult> myLyricsInputHandler, IMyLyricsOutputHandler <IActionResult> myLyricsOutputHandler, ICanManageLyricInputHandler <IActionResult> canManageLyricInputHandler, ICanManageLyricOutputHandler <IActionResult> canManageLyricOutputHandler) { _createLyricInputHandler = createLyricInputHandler; _createLyricOutputHandler = createLyricOutputHandler; _editLyricInputHandler = editLyricInputHandler; _editLyricOutputHandler = editLyricOutputHandler; _deleteLyricInputHandler = deleteLyricInputHandler; _deleteLyricOutputHandler = deleteLyricOutputHandler; _detailsLyricInputHandler = detailsLyricInputHandler; _detailsLyricOutputHandler = detailsLyricOutputHandler; _allLyricsInputHandler = allLyricsInputHandler; _allLyricsOutputHandler = allLyricsOutputHandler; _myLyricsInputHandler = myLyricsInputHandler; _myLyricsOutputHandler = myLyricsOutputHandler; _canManageLyricInputHandler = canManageLyricInputHandler; _canManageLyricOutputHandler = canManageLyricOutputHandler; }
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."); } }