public async Task <IApplicationResult <DadosPaginadosViewModel <PlanoTrabalhoViewModel> > > ObterPlanoTrabalhoPorFiltroAsync(PlanoTrabalhoFiltroRequest request) { var result = new ApplicationResult <DadosPaginadosViewModel <PlanoTrabalhoViewModel> >(); var unidadesUsuario = await ObterUnidadesPerfilPessoa(request); if (unidadesUsuario != null) { request.UnidadesUsuario = unidadesUsuario.ToList(); } //Obtém as unidades var dados = await PlanoTrabalhoQuery.ObterPorFiltroAsync(request); result.Result = dados.Result; return(result); }
public async Task <IActionResult> GetAll([FromQuery] PlanoTrabalhoFiltroRequest request) => await EstruturaOrganizacionalQuery.ObterPlanoTrabalhoPorFiltroAsync(request);
public async Task <IApplicationResult <DadosPaginadosViewModel <PlanoTrabalhoViewModel> > > ObterPorFiltroAsync(PlanoTrabalhoFiltroRequest request) { var result = new ApplicationResult <DadosPaginadosViewModel <PlanoTrabalhoViewModel> >(); var query = PlanoTrabalhoRawSqls.ObterPorFiltro; DynamicParameters parameters = new DynamicParameters(); parameters.Add("@situacaoId", request.SituacaoId, DbType.Int32, ParameterDirection.Input); parameters.Add("@dataInicio", request.DataInicio, DbType.Date, ParameterDirection.Input); parameters.Add("@dataFim", request.DataFim, DbType.Date, ParameterDirection.Input); parameters.Add("@offset", (request.Page - 1) * request.PageSize, DbType.Int32, ParameterDirection.Input); parameters.Add("@pageSize", request.PageSize, DbType.Int32, ParameterDirection.Input); var unidades = new List <Int64>(); if (request.UnidadeId.HasValue) { unidades.Add(request.UnidadeId.Value); } else if (request.UnidadesUsuario != null) { foreach (var unidadeId in request.UnidadesUsuario) { unidades.Add(unidadeId); } } if (unidades.Any()) { query = query.Replace("#UNIDADES#", " AND p.unidadeId in (" + String.Join(',', unidades) + " )"); } else { query = query.Replace("#UNIDADES#", string.Empty); } using (var connection = new SqlConnection(Configuration.GetConnectionString("DefaultConnection"))) { connection.Open(); var dadosPaginados = new DadosPaginadosViewModel <PlanoTrabalhoViewModel>(request); using (var multi = await connection.QueryMultipleAsync(query, parameters)) { dadosPaginados.Registros = multi.Read <PlanoTrabalhoViewModel>().ToList(); dadosPaginados.Controle.TotalRegistros = multi.ReadFirst <int>(); result.Result = dadosPaginados; } connection.Close(); } return(result); }