public async Task <IActionResult> ConsultarRemisionesPendientesPorFiltro([FromQuery] RemisionPendienteFiltroDTO remisionPendiente)
        {
            try
            {
                var result = await _service.ConsultarRemisionesPendientesPorFiltro(remisionPendiente, new UsuarioDTO());

                return(Ok(new { CantidadRegistros = result.Item1, Listado = result.Item2 }));
            }
            catch (Exception)
            {
                throw;
            }
        }
        public async Task <Tuple <int, IEnumerable <RemisionPendienteDTO> > > ConsultarRemisionesPendientesPorFiltro(RemisionPendienteFiltroDTO remisionFiltro, UsuarioDTO usuario)
        {
            try
            {
                var query = await(from r in _context.Remision
                                  join rd in _context.RemisionDetalle on r.Id equals rd.RemisionId
                                  where r.Estado.Valor == CanonicalConstants.Estados.Remision.Pendiente &&
                                  (string.IsNullOrEmpty(remisionFiltro.RemisionId) || r.Id.ToString().Contains(remisionFiltro.RemisionId.Trim())) &&
                                  (string.IsNullOrEmpty(remisionFiltro.OrdenTrabajoId) || rd.OrdenTrabajo.Id.ToString().Contains(remisionFiltro.OrdenTrabajoId.Trim())) &&
                                  (string.IsNullOrEmpty(remisionFiltro.Cliente) || rd.OrdenTrabajo.Cliente.NickName.Contains(remisionFiltro.Cliente.Trim())) &&
                                  (string.IsNullOrEmpty(remisionFiltro.Herramienta) || rd.OrdenTrabajo.Herramienta.Nombre.Contains(remisionFiltro.Herramienta.Trim())) &&
                                  (string.IsNullOrEmpty(remisionFiltro.Linea) || rd.OrdenTrabajo.Linea.Nombre.Contains(remisionFiltro.Linea.Trim())) &&
                                  (string.IsNullOrEmpty(remisionFiltro.Serial) || rd.OrdenTrabajo.SerialHerramienta.Contains(remisionFiltro.Serial.Trim())) &&
                                  (string.IsNullOrEmpty(remisionFiltro.DetalleSolicitud) || rd.OrdenTrabajo.DetallesSolicitud.Contains(remisionFiltro.DetalleSolicitud.Trim()))
                                  select new RemisionPendienteDTO
                {
                    RemisionId       = r.Id,
                    GuidRemision     = r.Guid,
                    OrdenTrabajoId   = rd.OrdenTrabajo.Id,
                    Cliente          = rd.OrdenTrabajo.Cliente.NickName,
                    Linea            = rd.OrdenTrabajo.Linea.Nombre,
                    Herramienta      = rd.OrdenTrabajo.Herramienta.Nombre,
                    Serial           = rd.OrdenTrabajo.SerialHerramienta,
                    DetalleSolicitud = rd.OrdenTrabajo.DetallesSolicitud,
                    Estado           = r.Estado.Valor,
                    Fecha            = r.FechaRegistro
                }).ToListAsync();

                var result = query.OrderByDescending(r => r.Fecha)
                             .Skip(remisionFiltro.RegistrosOmitir())
                             .Take(remisionFiltro.CantidadRegistros)
                             .ToList();


                var cantidad = query.Count();


                return(new Tuple <int, IEnumerable <RemisionPendienteDTO> >(cantidad, result));
            }
            catch (Exception)
            {
                throw;
            }
        }
 public async Task <Tuple <int, IEnumerable <RemisionPendienteDTO> > > ConsultarRemisionesPendientesPorFiltro(RemisionPendienteFiltroDTO remisionFiltro, UsuarioDTO usuario)
 {
     try
     {
         return(await _repository.ConsultarRemisionesPendientesPorFiltro(remisionFiltro, usuario));
     }
     catch (Exception)
     {
         throw;
     }
 }