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(AllLyricsInput input, IAllLyricsOutputHandler <T> output) { IEnumerable <Lyric> lyrics; if (string.IsNullOrEmpty(input.SearchTerm)) { lyrics = await _lyricRepository.GetAllNonDeletedAsync(input.Page, input.PageSize); } else { lyrics = await _lyricRepository.GetAllQueryAsync(x => x.Singer.Contains(input.SearchTerm), input.Page, input.PageSize); } var result = lyrics.Select(x => new AllLyricOutput(x.Id, x.Text, x.Title, x.Singer, x.AuthorId, x.Author.Username)); output.Success(new AllLyricsOutput(result, input.IncludeCount ? await _lyricRepository.CountAsync() : 0)); }