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);
        }
Beispiel #2
0
 public async Task <IActionResult> GetAll([FromQuery] PlanoTrabalhoFiltroRequest request)
 => await EstruturaOrganizacionalQuery.ObterPlanoTrabalhoPorFiltroAsync(request);
Beispiel #3
0
        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);
        }