Ejemplo n.º 1
0
 public List<ContractDocumentDTO> Search(string keyword)
 {
     var documentPathAppService = UniContainer.Resolve<IDocumentPathAppService>();
     var queryResults = LuceneSearch.LuceneSearch.PanguQuery(keyword, "3");
     if (queryResults == null) return new List<ContractDocumentDTO>();
     var multiSearcher = IndexManager.GenerateMultiSearcher("3");
     var documents =
         queryResults.scoreDocs.Select(a => multiSearcher.Doc(a.doc)).Select(result =>
         {
             var documentId = Guid.Parse(result.Get("ID"));
             Expression<Func<Order, bool>> orderDocument = p => p.ContractDocGuid == documentId;
             Expression<Func<RelatedDoc, bool>> relateDocument = p => p.DocumentId == documentId;
             Expression<Func<MaintainContract, bool>> maintainContractDocument = p => p.DocumentId == documentId;
             var document =
                 _contractDocumentQuery.GetContractDocuments(orderDocument, relateDocument,
                     maintainContractDocument).FirstOrDefault();
             var contractDocument = new ContractDocumentDTO
             {
                 Id = documentId,
                 DocumentId = documentId,
                 Abstract = ResultHighlighter.HighlightContent(keyword, result.Get("fileContent")),
                 DocumentName = result.Get("fileName"),
             };
             if (document != null)
             {
                 contractDocument.ContractName = document.ContractName;
                 contractDocument.ContractNumber = document.ContractName;
                 contractDocument.SupplierName = document.SupplierName;
                 contractDocument.SubDocuments = document.SubDocuments;
             }
             documentPathAppService.GetDocumentPaths().Where(p => p.DocumentGuid == documentId).ToList()
                 .ForEach(p => contractDocument.DocumentPath += p.Path + "\r\n");
             return contractDocument;
         }).ToList();
     return documents;
 }
Ejemplo n.º 2
0
 private void SetSubContractDocument(ContractDocumentDTO source, ContractDocumentDTO dst)
 {
     if (dst.SubDocuments.Count == 0)
     {
         dst.SubDocuments = new List<SubContractDocumentDTO>
                        {
                            new SubContractDocumentDTO
                            {
                                Id = Guid.NewGuid(),
                                SupplierName = source.SupplierName,
                                ContractName = source.ContractName,
                                ContractNumber = source.ContractNumber,
                            }
                        };
     }
     else
     {
         dst.SubDocuments.Add(new SubContractDocumentDTO
                            {
                                Id = Guid.NewGuid(),
                                SupplierName = source.SupplierName,
                                ContractName = source.ContractName,
                                ContractNumber = source.ContractNumber,
                            });
     }
 }