public async Task <ActionResult <IEnumerable <ContratoDTO> > > Get([FromQuery] ContratoQueryFilter filters)
        {
            var contratos = await _contratoService.GetContratos(filters);

            var contratosDTO = _mapper.Map <IEnumerable <ContratoDTO> >(contratos);
            var metadata     = new MetaData().BuildMeta <Contrato>(contratos, filters, Request.Path.Value, _uriService);
            var response     = new ApiResponse <IEnumerable <ContratoDTO> >(contratosDTO)
            {
                Meta = metadata
            };

            Request.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));
            return(Ok(response));
        }
Пример #2
0
        public async Task <PagedList <Contrato> > GetContratos(ContratoQueryFilter filters)
        {
            var contratos = await _unitOfWork.ContratoRepository.GetAll();

            contratos = filters.Concepto != null?contratos.Where(x => x.Concepto.ToLower().Contains(filters.Concepto.ToLower())) : contratos;

            contratos = filters.Descripcion != null?contratos.Where(x => x.Descripcion.ToLower().Contains(filters.Descripcion.ToLower())) : contratos;

            contratos = filters.Estatus != null?contratos.Where(x => x.Estatus == filters.Estatus) : contratos;

            contratos = filters.Cliente != null?contratos.Where(x => x.IdCliente == filters.Cliente) : contratos;

            contratos = filters.Usuario != null?contratos.Where(x => x.IdUsuario == filters.Usuario) : contratos;

            contratos = filters.Vehiculo != null?contratos.Where(x => x.IdVehiculo == filters.Vehiculo) : contratos;

            return(_pagedGenerator.GeneratePagedList(contratos, filters));
        }