Exemple #1
0
        public async Task <IApplicationResult <DadosPaginadosViewModel <PessoaViewModel> > > ObterPorFiltroAsync(PessoaFiltroRequest request)
        {
            var result = new ApplicationResult <DadosPaginadosViewModel <PessoaViewModel> >();

            DynamicParameters parameters = new DynamicParameters();

            parameters.Add("@pesNome", request.Nome, DbType.String, ParameterDirection.Input);
            parameters.Add("@unidadeId", request.UnidadeId, DbType.Int32, ParameterDirection.Input);
            parameters.Add("@catalogoDominioId", request.CatalogoDominioId, DbType.Int32, ParameterDirection.Input);

            parameters.Add("@offset", (request.Page - 1) * request.PageSize, DbType.Int32, ParameterDirection.Input);
            parameters.Add("@pageSize", request.PageSize, DbType.Int32, ParameterDirection.Input);

            using (var connection = new SqlConnection(Configuration.GetConnectionString("DefaultConnection")))
            {
                connection.Open();

                var dadosPaginados = new DadosPaginadosViewModel <PessoaViewModel>(request);


                using (var multi = await connection.QueryMultipleAsync(PessoaRawSqls.ObterPorFiltro, parameters))
                {
                    dadosPaginados.Registros = multi.Read <PessoaViewModel>().ToList();
                    dadosPaginados.Controle.TotalRegistros = multi.ReadFirst <int>();
                    result.Result = dadosPaginados;
                }

                connection.Close();
            }

            return(result);
        }
 public async Task <IActionResult> GetAll([FromQuery] PessoaFiltroRequest request)
 => await PessoaQuery.ObterPorFiltroAsync(request);