public IEnumerable <string> GetDocumentsTypes([FromUri] DocumentsFilter filter) { return(this.GetDocumentsByCompanyUI(filter) .OrderBy(o => o.DocType) .Select(d => d.DocType) .Distinct()); }
public async Task <PaginatedItemsViewModel <DocumentViewModel> > GetDocumentsPaginatedAsync( DocumentsFilter parameters, int pageSize, int pageIndex) { var documentsQuery = _context.Documents.Filter(parameters); var totalCount = await documentsQuery.LongCountAsync(); var documentsOnPage = await documentsQuery .OrderByDescending(d => d.CreationDate) .Skip(pageSize * pageIndex) .Take(pageSize) .Select(d => new DocumentViewModel { ID = d.ID, CreationDate = d.CreationDate, Name = d.Name, Extension = d.Originals.Where(o => o.ForSign).Select(o => o.Extension).FirstOrDefault(), DocumentType = d.DocumentType.Name }) .ToListAsync(); var model = new PaginatedItemsViewModel <DocumentViewModel>( pageIndex, pageSize, totalCount, documentsOnPage); return(model); }
public DocumentUI GetDocument([FromUri] DocumentsFilter filter) { ProfileCommon profile = APIhelper.GetProfileCommon(Request); int companyId = DB.GetBorrowerClientCompanyId(profile, filter.BorrowerId); return(DocumentUI.GetDocument(companyId, filter.DocumentId)); }
public static IQueryable <Document> Filter(this IQueryable <Document> d, DocumentsFilter filter) { if (filter.OrganizationOwnerID is { } orgOwnerId) { d = d.Where(x => x.OrganizationID == orgOwnerId); } if (filter.DocTypeID is { } && filter.DocTypeID.Any())
private IEnumerable <DocumentUI> GetDocumentsByCompany(DocumentsFilter filter) { ProfileCommon profile = APIhelper.GetProfileCommon(Request); web_Company wc = DB.GetCompanyByID(profile.CompanyID); return(DocumentUI.GetDocumentsByCompanyUI(profile, wc, filter.BorrowerId, filter.FileType)); }
public async Task GetDocumentsPaginatedAsync_ByOrganizationReceiver_Success() { var cabinetContext = new CabinetContext(_dbOptions); var docType = TestHelper.GetFakeDocumentType(); cabinetContext.DocumentTypes.Add(docType); cabinetContext.SaveChanges(); var document = TestHelper.GetFakeDocument(); document.DocumentTypeID = docType.ID; cabinetContext.Documents.Add(document); cabinetContext.SaveChanges(); var searchParameters = new DocumentsFilter { OrganizationReceiverID = document.OrganizationID }; var documentService = new DocumentService(cabinetContext, _documentManager); var documents = await documentService.GetDocumentsPaginatedAsync(searchParameters, 50, 0); Assert.AreEqual(0, documents.Data.Count()); }
public async Task <ActionResult <PaginatedItemsViewModel <Document> > > GetDocumentsAsync([FromQuery] DocumentsFilter filter, int pageSize = 50, int pageIndex = 0) { if (!filter.IsValid) { return(BadRequest()); } var documents = await _documentService.GetDocumentsPaginatedAsync(filter, pageSize, pageIndex); return(Ok(documents)); }
public IHttpActionResult GetDocumentsZip([FromUri] DocumentsFilter filter) { if (String.IsNullOrEmpty(filter.FileType)) { return(null); } IEnumerable <DocumentUI> docs = this.GetDocumentsByCompany(filter); IEnumerable <DocumentUI> filterDocs = docs; if (!filter.All) { filterDocs = docs.Where( d => d.SyncDate >= filter.From && d.SyncDate <= filter.To); } string guid = Guid.NewGuid().ToString(); string workingFolder = Util.GetAppSettings("WorkingFolder"); string tempFolder = Path.Combine(workingFolder, guid) + @"\"; string syncRoot = Util.GetAppSettings("DocRoot"); Directory.CreateDirectory(tempFolder); filterDocs.ToList().ForEach(d => { string source = syncRoot + d.Path; if (File.Exists(source)) { try { int tryCount = 1; string fname = Path.GetFileName(d.Path); if (fname.StartsWith("Q") && fname.Length > 16) { fname = fname.Substring(13); } // find a unique name string newPath = tempFolder + fname; while (File.Exists(newPath)) { newPath = tempFolder + Path.GetFileNameWithoutExtension(fname) + " (" + (tryCount++).ToString() + ")" + Path.GetExtension(fname); } this.CopyFile(source, newPath); } catch { } } }); FastZip fastZip = new FastZip(); fastZip.CreateEmptyDirectories = true; fastZip.RestoreAttributesOnExtract = true; fastZip.RestoreDateTimeOnExtract = true; string pathToZip = tempFolder.TrimEnd(new char[] { '\\' }) + ".zip"; fastZip.CreateZip(pathToZip, tempFolder, false, null); return(new FileActionResult(pathToZip)); }
public IEnumerable <DocumentUI> GetDocumentsByCompanyUI([FromUri] DocumentsFilter filter) { return(this.GetDocumentsByCompany(filter)); }