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(MyLyricsInput input, IMyLyricsOutputHandler <T> output) { var lyrics = await _lyricRepository.GetAllQueryAsync(x => x.Author.Username == input.AuthorUsername, input.Page, input.PageSize); var result = lyrics.Select(x => new MyLyricOutput(x.Id, x.Text, x.Title, x.Singer, x.AuthorId, x.Author.Username)); output.Success(new MyLyricsOutput(result, input.IncludeCount ? await _lyricRepository.CountAsync(x => x.Author.Username == input.AuthorUsername) : 0)); }