Exemple #1
0
        private static bool SearchByMultipleProperties(DocumentsPagingQueryModel query, Document doc)
        {
            var documentHistory = doc.DocumentHistory.Where(d => d.DocumentId == doc.DocumentId).OrderBy(document => document.ModifiedAt).ToList();

            if (query.CreatedDateFrom?.Date != null && !(documentHistory.FirstOrDefault()?.ModifiedAt.Date >= query.CreatedDateFrom?.Date))
            {
                return(false);
            }
            if (query.CreatedDateTo?.Date != null && !(documentHistory.FirstOrDefault()?.ModifiedAt.Date <= query.CreatedDateTo?.Date))
            {
                return(false);
            }
            if (query.ModifiedDateFrom?.Date != null && !(documentHistory.LastOrDefault()?.ModifiedAt.Date >= query.ModifiedDateFrom?.Date))
            {
                return(false);
            }
            if (query.ModifiedDateTo?.Date != null && !(documentHistory.LastOrDefault()?.ModifiedAt.Date <= query.ModifiedDateTo?.Date))
            {
                return(false);
            }
            if (query.SearchByCategoryId != 0 && query.SearchByCategoryId != null && doc.DocumentCategoryId != query.SearchByCategoryId)
            {
                return(false);
            }
            if (query.SearchByCaseId != 0 && query.SearchByCaseId != null && doc.CaseId != query.SearchByCaseId)
            {
                return(false);
            }
            if (!string.IsNullOrEmpty(query.SearchByTitle) && !doc.Title.ToLower().Contains(query.SearchByTitle.ToLower()))
            {
                return(false);
            }
            return(string.IsNullOrEmpty(query.SearchByDescription) || doc.Description.ToLower().Contains(query.SearchByDescription.ToLower()));
        }
Exemple #2
0
 public PagingResultModel <DocumentDetails> GetDocumentsByPage(DocumentsPagingQueryModel query)
 {
     if (query.PageNumber < 0)
     {
         throw new ArgumentException("Page number is not valid");
     }
     return(_documentRepository.GetAllDocumentsByPage(query));
 }
 public IActionResult GetDocumentsByPage([FromBody] DocumentsPagingQueryModel queryDto)
 {
     try
     {
         return(Ok(DocumentManipulation.GetDocumentsByPage(queryDto)));
     }
     catch (Exception ex)
     {
         Logger.Logger.LogError(ex.Message);
         throw new Exception(ex.Message);
     }
 }
 public IActionResult GetDocumentsByPage([FromBody] DocumentsPagingQueryModel queryDto)
 {
     try
     {
         return(Ok(DocumentManipulation.GetDocumentsByPage(queryDto)));
     }
     catch (Exception ex)
     {
         Logger.LogError(ex.Message);
         throw new NSIException(ex.Message, DC.Exceptions.Enums.Level.Error, DC.Exceptions.Enums.ErrorType.InvalidParameter);
     }
 }
Exemple #5
0
        public void GetDocuments_InvalidId_ThrowException()
        {
            // Arrange & Act
            var documentRepo         = new Mock <IDocumentRepository>();
            var documentManipulation = new DocumentManipulation(documentRepo.Object);
            var logger     = new Mock <Microsoft.Extensions.Logging.ILogger <DocumentController> >().Object;
            var controller = new DocumentController(documentManipulation, logger);

            // Act
            var page        = -1;
            var perPage     = 100;
            var description = "";
            var pageM       = new DocumentsPagingQueryModel()
            {
                PageNumber          = page,
                ResultsPerPage      = perPage,
                SearchByDescription = description
            };

            controller.GetDocumentsByPage(pageM);
        }
        public void GetDocuments_ReturnsOK()
        {
            // Arrange & Act
            var documentRepo         = new Mock <IDocumentRepository>();
            var documentManipulation = new DocumentManipulation(documentRepo.Object);
            var controller           = new DocumentController(documentManipulation);

            // Act
            int    page        = 1;
            int    perPage     = 100;
            string description = "";
            var    pageM       = new DocumentsPagingQueryModel()
            {
                PageNumber          = page,
                ResultsPerPage      = perPage,
                SearchByDescription = description
            };
            var result = controller.GetDocumentsByPage(pageM);

            // Assert
            Assert.IsType <OkObjectResult>(result);
        }
        private static bool SearchByMultipleProperties(DocumentsPagingQueryModel query, Document doc)
        {
            if (doc.IsDeleted)
            {
                return(false);
            }
            var documentHistory = doc.DocumentHistory.Where(d => d.DocumentId == doc.DocumentId).OrderBy(document => document.ModifiedAt).ToList();

            if (query.CreatedDateFrom?.Date != null && documentHistory.FirstOrDefault()?.ModifiedAt.Date < query.CreatedDateFrom?.Date)
            {
                return(false);
            }
            if (query.CreatedDateFrom?.Date != null && documentHistory.FirstOrDefault()?.ModifiedAt.Date > query.CreatedDateFrom?.Date)
            {
                return(false);
            }
            if (query.CreatedDateTo?.Date != null && documentHistory.LastOrDefault()?.ModifiedAt.Date < query.CreatedDateTo?.Date)
            {
                return(false);
            }
            if (query.CreatedDateTo?.Date != null && documentHistory.LastOrDefault()?.ModifiedAt.Date > query.CreatedDateTo?.Date)
            {
                return(false);
            }
            if (query.SearchByCategoryId != 0 && doc.DocumentCategoryId != query.SearchByCategoryId)
            {
                return(false);
            }
            if (query.SearchByCaseId != 0 && doc.CaseId != query.SearchByCaseId)
            {
                return(false);
            }
            if (query.SearchByTitle != "" && !doc.Title.Contains(query.SearchByTitle))
            {
                return(false);
            }
            return(query.SearchByDescription == "" || !doc.Description.Contains(query.SearchByDescription));
        }
Exemple #8
0
        public void GetDocuments_ReturnsOK()
        {
            // Arrange & Act
            var documentRepo         = new Mock <IDocumentRepository>();
            var documentManipulation = new DocumentManipulation(documentRepo.Object);
            var logger     = new Mock <Microsoft.Extensions.Logging.ILogger <DocumentController> >().Object;
            var controller = new DocumentController(documentManipulation, logger);

            // Act
            var page        = 1;
            var perPage     = 100;
            var description = "";
            var pageM       = new DocumentsPagingQueryModel()
            {
                PageNumber          = page,
                ResultsPerPage      = perPage,
                SearchByDescription = description
            };
            var result = controller.GetDocumentsByPage(pageM);

            // Assert
            Assert.IsInstanceOfType(result, typeof(OkObjectResult));
        }
Exemple #9
0
        PagingResultModel <DocumentDetails> IDocumentRepository.GetAllDocumentsByPage(DocumentsPagingQueryModel query)
        {
            var result = new PagingResultModel <DocumentDetails>
            {
                ItemsPerPage = query.ResultsPerPage
            };
            var documents         = _dbContext.Document.Include(x => x.Case).Include(x => x.DocumentCategory).Include(h => h.DocumentHistory).Include(f => f.FileType).ToList();
            var filteredDocuments = documents.Where(doc => doc.IsDeleted == false && SearchByMultipleProperties(query, doc))
                                    .Select(d => DocumentRepository.MapToDocumentDetailsDto(d, _dbContext)).ToList();

            result.TotalItems = filteredDocuments.Count;
            result.Results    = filteredDocuments.Skip(query.ResultsPerPage * (query.PageNumber - 1)).Take(query.ResultsPerPage).ToList();
            return(result);
        }