public async Task <List <GetAllDocumentDto> > Handle(GetAllDocumentQuery request, CancellationToken cancellationToken) { List <Document> documents = await _context.Documents.Where(d => !d.Deleted).ToListAsync(); List <GetAllDocumentDto> result = documents .Select(d => new GetAllDocumentDto { Id = d.Id, Code = d.Code, Name = d.Name, CompanyCode = d.CompanyCode, DepartmentCode = d.DepartmentCode, Description = d.Description, Approver = d.Approver, Auditor = d.Auditor, DDCAudited = d.DDCAudited, ContentChange = d.ContentChange, DocumentNumber = d.DocumentNumber, Drafter = d.Drafter, DocumentType = d.DocumentType, EffectiveDate = d.EffectiveDate, FileName = d.FileName, Module = d.Module, ReviewDate = d.ReviewDate, ReviewNumber = d.ReviewNumber, ScopeOfApplication = d.ScopeOfApplication, ScopeOfDeloyment = d.ScopeOfDeloyment, Appendices = _context.Appendices.Where(a => _context.StringSplit(a.RelateToDocuments, ";").Any(a1 => a1.SplitData == d.Code)) .Select(a => new AppendiceDto { Id = a.Id, LinkFile = a.LinkFile, Code = a.Code, Name = a.Name, DocumentType = a.DocumentType, FileName = a.FileName, DocumentNumber = a.AppendiceNumber, ReviewNumber = a.ReviewNumber }).ToList() }).ToList(); return(result); }
public async Task <GetAppendiceByIdDto> Handle(GetAppendiceByIdQuery request, CancellationToken cancellationToken) { GetAppendiceByIdDto getAppendiceByIdDto = await _context.Appendices .Where(d => !d.Deleted && d.Id == request.Id) .Select(d => new GetAppendiceByIdDto { Id = d.Id, Code = d.Code, Name = d.Name, CompanyCode = d.CompanyCode, AppendiceNumber = d.AppendiceNumber, DepartmentCode = d.DepartmentCode, Approver = d.Approver, DDCAudited = d.DDCAudited, DocumentType = d.DocumentType, EffectiveDate = d.EffectiveDate, FileName = d.FileName, Module = d.Module, ReviewDate = d.ReviewDate, ReviewNumber = d.ReviewNumber, ScopeOfApplication = d.ScopeOfApplication, ScopeOfDeloyment = d.ScopeOfDeloyment, RelateToDocuments = _context.Documents.Join( _context.StringSplit(d.RelateToDocuments, ";"), d1 => d1.Code, d2 => d2.SplitData, (d1, d2) => new RelateToDocumentDto { Code = d1.Code, Name = d1.Name, FileName = d1.FileName, FolderName = d1.FolderName, DocumentNumber = d1.DocumentNumber, ReviewNumber = d1.ReviewNumber, EffectiveDate = d1.EffectiveDate, ReviewDate = d1.ReviewDate }).ToList(), }) .FirstOrDefaultAsync(); return(getAppendiceByIdDto); }
public async Task <DataSourceResult> Handle(SearchDocumentsByTokenPagedQuery request, CancellationToken cancellationToken) { IQueryable <Document> query = _context.Documents.AsQueryable(); query = query.Where(c => !c.Deleted); if (!string.IsNullOrWhiteSpace(request.Token)) { if (request.AdvancedSearch) { request.Token = request.Token?.ToLowerInvariant()?.NonUnicode(); string fileNames = string.Join(";", FindFilesByToken(request.Token)); query = query.Where(c => _context.NonUnicode(c.Name).Contains(request.Token) || _context.NonUnicode(c.ContentChange).Contains(request.Token) || _context.NonUnicode(c.DepartmentName).Contains(request.Token) || _context.NonUnicode(c.DocumentNumber).Contains(request.Token) || _context.NonUnicode(c.CompanyName).Contains(request.Token) || _context.NonUnicode(c.FileName).Contains(request.Token) || _context.NonUnicode(c.FolderName).Contains(request.Token) || _context.NonUnicode(c.LinkFile).Contains(request.Token) || _context.NonUnicode(c.Module).Contains(request.Token) || _context.NonUnicode(c.RelateToDocuments).Contains(request.Token) || _context.NonUnicode(c.ReplaceOf).Contains(request.Token) || _context.NonUnicode(c.ReviewNumber).Contains(request.Token) || _context.NonUnicode(c.ScopeOfApplication).Contains(request.Token) || _context.NonUnicode(c.ScopeOfDeloyment).Contains(request.Token) || _context.NonUnicode(c.Description).Contains(request.Token)); //|| _context.CompareTwoFiles(_context.NonUnicode(c.FileName), fileNames, ";")); } else { /*query = query.Where(c => _context.NonUnicode(c.Name).Contains(request.Token) || _context.NonUnicode(c.ContentChange).Contains(request.Token) || _context.NonUnicode(c.DepartmentName).Contains(request.Token) || _context.NonUnicode(c.DocumentNumber).Contains(request.Token) || _context.NonUnicode(c.CompanyName).Contains(request.Token) || _context.NonUnicode(c.FileName).Contains(request.Token) || _context.NonUnicode(c.FolderName).Contains(request.Token) || _context.NonUnicode(c.LinkFile).Contains(request.Token) || _context.NonUnicode(c.Module).Contains(request.Token) || _context.NonUnicode(c.RelateToDocuments).Contains(request.Token) || _context.NonUnicode(c.ReplaceOf).Contains(request.Token) || _context.NonUnicode(c.ReviewNumber).Contains(request.Token) || _context.NonUnicode(c.ScopeOfApplication).Contains(request.Token) || _context.NonUnicode(c.ScopeOfDeloyment).Contains(request.Token) || _context.NonUnicode(c.Description).Contains(request.Token));*/ query = query.Where(c => c.Name.Contains(request.Token) || c.ContentChange.Contains(request.Token) || c.DepartmentName.Contains(request.Token) || c.DocumentNumber.Contains(request.Token) || c.CompanyName.Contains(request.Token) || c.FileName.Contains(request.Token) || c.FolderName.Contains(request.Token) || c.LinkFile.Contains(request.Token) || c.Module.Contains(request.Token) || c.RelateToDocuments.Contains(request.Token) || c.ReplaceOf.Contains(request.Token) || c.ReviewNumber.Contains(request.Token) || c.ScopeOfApplication.Contains(request.Token) || c.ScopeOfDeloyment.Contains(request.Token) || c.Description.Contains(request.Token)); } } if (!request.DataSourceRequest.SortDataField.IsNullOrEmpty()) { if (QueryHelper.PropertyExists <Document>(request.DataSourceRequest.SortDataField)) { switch (request.DataSourceRequest.SortOrder) { case "asc": query = QueryHelper.OrderByProperty(query, request.DataSourceRequest.SortDataField); break; case "desc": query = QueryHelper.OrderByPropertyDescending(query, request.DataSourceRequest.SortDataField); break; default: query = query.OrderByDescending(u => u.CreatedOn); break; } } } else { query = query.OrderByDescending(u => u.CreatedOn); } IQueryable <SearchDocumentsByTokenPagedDto> test = query.Select(document => new SearchDocumentsByTokenPagedDto { Id = document.Id, Approver = document.Approver, Auditor = document.Auditor, Code = document.Code, CompanyCode = document.CompanyCode, CompanyName = document.CompanyName, ContentChange = document.ContentChange, DDCAudited = document.DDCAudited, DepartmentCode = document.DepartmentCode, DepartmentName = document.DepartmentName, Description = document.Description, DocumentNumber = document.DocumentNumber, DocumentType = document.DocumentType, Drafter = document.Drafter, EffectiveDate = document.EffectiveDate, FileName = document.FileName, FolderName = document.FolderName, LinkFile = document.LinkFile, Module = document.Module, Name = document.Name, ReplaceEffectiveDate = document.ReplaceEffectiveDate, DocumentTypeName = _context.DocumentTypes.FirstOrDefault(dt => dt.Code == document.DocumentType).Name, ListReplaceOf = _context.Documents. Where(d => _context.StringSplit(document.ReplaceOf, ";").Any(a1 => a1.SplitData == d.Code)) .Select(d => d.Name) .ToList(), ListRelateToDocuments = _context.Documents. Where(d => _context.StringSplit(document.RelateToDocuments, ";").Any(a1 => a1.SplitData == d.Code)) .Select(d => d.Name) .ToList(), ReplaceOf = document.ReplaceOf, RelateToDocuments = document.RelateToDocuments, ReviewDate = document.ReviewDate, ReviewNumber = document.ReviewNumber, ScopeOfApplication = document.ScopeOfApplication, ScopeOfDeloyment = document.ScopeOfDeloyment }); PagedList <SearchDocumentsByTokenPagedDto> queryResult = new PagedList <SearchDocumentsByTokenPagedDto>(); await queryResult.CreateAsync(test, request.DataSourceRequest.PageNum, request.DataSourceRequest.PageSize); return(new DataSourceResult { Data = queryResult.ToList(), Total = queryResult.TotalCount }); }
public async Task <GetDocumentByCodeDto> Handle(GetDocumentByCodeQuery request, CancellationToken cancellationToken) { GetDocumentByCodeDto getDocumentByCodeDto = await _context.Documents .Where(d => !d.Deleted && d.Code == request.Code) .Select(d => new GetDocumentByCodeDto { Id = d.Id, Code = d.Code, Name = d.Name, CompanyCode = d.CompanyCode, DepartmentCode = d.DepartmentCode, Description = d.Description, Approver = d.Approver, Auditor = d.Auditor, DDCAudited = d.DDCAudited, Active = d.Active, ContentChange = d.ContentChange, DocumentNumber = d.DocumentNumber, Drafter = d.Drafter, DocumentType = d.DocumentType, EffectiveDate = d.EffectiveDate, FileName = d.FileName, FolderName = d.FolderName, Module = d.Module, ReviewDate = d.ReviewDate, ReviewNumber = d.ReviewNumber, ScopeOfApplication = d.ScopeOfApplication, ScopeOfDeloyment = d.ScopeOfDeloyment, ReplaceByDocuments = _context.Documents.Where(d1 => _context.StringSplit(d1.RelateToDocuments, ";").Any(d2 => d2.SplitData == d.Code)) .Select(d1 => new ReplaceToDocumentDto { Code = d1.Code, Name = d1.Name, FileName = d1.FileName, FolderName = d1.FolderName, DocumentNumber = d1.DocumentNumber, EffectiveDate = d1.EffectiveDate, ReviewDate = d1.ReviewDate }).ToList(), RelateToDocuments = _context.Documents.Join( _context.StringSplit(d.RelateToDocuments, ";"), d1 => d1.Code, d2 => d2.SplitData, (d1, d2) => new RelateToDocumentDto { Code = d1.Code, Name = d1.Name, FileName = d1.FileName, FolderName = d1.FolderName, DocumentNumber = d1.DocumentNumber, EffectiveDate = d1.EffectiveDate, ReviewDate = d1.ReviewDate }).ToList(), ReplaceToDocuments = _context.Documents.Join(_context.StringSplit(d.ReplaceOf, ";"), d1 => d1.Code, d2 => d2.SplitData, (d1, d2) => new ReplaceToDocumentDto { Code = d1.Code, Name = d1.Name, FileName = d1.FileName, FolderName = d1.FolderName, DocumentNumber = d1.DocumentNumber, EffectiveDate = d1.EffectiveDate, ReviewDate = d1.ReviewDate }).ToList(), Appendices = _context.Appendices.Where(a => _context.StringSplit(a.RelateToDocuments, ";").Any(a1 => a1.SplitData == d.Code)) .Select(a => new AppendiceDto { Code = a.Code, Name = a.Name, DocumentType = a.DocumentType, FileName = a.FileName, DocumentNumber = a.AppendiceNumber, ReviewNumber = a.ReviewNumber, LinkFile = a.LinkFile }).ToList() }) .FirstOrDefaultAsync(); return(getDocumentByCodeDto); }