public async Task <List <AuthorDto> > Handle(GetListAuthorQuery request, CancellationToken cancellationToken) { var query = "SELECT * FROM Authors AS a WHERE "; query += "(ISNULL(@Id,0) = 0 OR a.Id = @ID) "; query += "AND (ISNULL(@Name,'') = '' OR a.Name LIKE '%' + @Name + '%') "; query += "AND (ISNULL(@Surname,'') = '' OR a.Surname LIKE '%' + @Surname + '%') "; var dpParams = new DynamicParameters(); dpParams.Add("Id", request.Id, DbType.Int32); dpParams.Add("Name", request.Name, DbType.String); dpParams.Add("Surname", request.Surname, DbType.String); var authors = await _dapper.GetListAsync <Author>(query, dpParams, CommandType.Text); var map = _mapper.Map <List <AuthorDto> >(authors); return(map); }
public async Task <IActionResult> List([FromQuery] GetListAuthorQuery getListAuthorQuery) { var result = await _mediator.Send(getListAuthorQuery); return(Ok(result)); }