예제 #1
0
 public IActionResult Get([FromQuery] DocumentoQueryFilter filter)
 {
     try
     {
         var documentos    = _service.GetDocumentos(filter);
         var DocumentosDto = _mapper.Map <IEnumerable <Documento>, IEnumerable <DocumentoResponseDto> >(documentos);
         var response      = new ApiResponse <IEnumerable <DocumentoResponseDto> >(DocumentosDto);
         return(Ok(response));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
        public IEnumerable <Documento> GetDocumentos(DocumentoQueryFilter filter)
        {
            Expression <Func <Documento, bool> > exprFinal = documento => documento.Id > 0;

            if (!string.IsNullOrEmpty(filter.NombreArchivo) && !string.IsNullOrWhiteSpace(filter.NombreArchivo))
            {
                Expression <Func <Documento, bool> > expr = documento => documento.NombreArchivo.Contains(filter.NombreArchivo);
                exprFinal = exprFinal.And(expr);
            }

            if (!string.IsNullOrEmpty(filter.Contenido) && !string.IsNullOrWhiteSpace(filter.Contenido))
            {
                Expression <Func <Documento, bool> > expr = documento => documento.Contenido.Contains(filter.Contenido);
                exprFinal = exprFinal.And(expr);
            }

            if (filter.FechaCreacion.HasValue && filter.FechaCreacion.HasValue)
            {
                Expression <Func <Documento, bool> > expr = documento => documento.FechaCreacion.Value.Date >= filter.FechaCreacion.Value.Date &&
                                                            documento.FechaCreacion.Value.Date <= filter.FechaCreacion.Value.Date;
                exprFinal = exprFinal.And(expr);
            }


            if (filter.Autor.HasValue)
            {
                Expression <Func <Documento, bool> > expr = documento => documento.AutorId == filter.Autor.Value;
                exprFinal = exprFinal.And(expr);
            }
            if (filter.Remitente.HasValue)
            {
                Expression <Func <Documento, bool> > expr = documento => documento.AutorId == filter.Remitente.Value;
                exprFinal = exprFinal.And(expr);
            }
            if (filter.Firmante.HasValue)
            {
                Expression <Func <Documento, bool> > expr = documento => documento.FirmanteId == filter.Firmante.Value;
                exprFinal = exprFinal.And(expr);
            }

            return(_context.Documento.Include(a => a.Autor).Include(r => r.Remitente).Include(f => f.Firmante).Where(exprFinal).AsNoTracking().AsEnumerable());
        }
예제 #3
0
 public IEnumerable <Documento> GetDocumentos(DocumentoQueryFilter filter)
 {
     return(_unitOfWork.DocumentoRepository.GetDocumentos(filter));
 }