Esempio n. 1
0
 public IEnumerable <string> GetDocumentsTypes([FromUri] DocumentsFilter filter)
 {
     return(this.GetDocumentsByCompanyUI(filter)
            .OrderBy(o => o.DocType)
            .Select(d => d.DocType)
            .Distinct());
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
    public DocumentUI GetDocument([FromUri] DocumentsFilter filter)
    {
        ProfileCommon profile   = APIhelper.GetProfileCommon(Request);
        int           companyId = DB.GetBorrowerClientCompanyId(profile, filter.BorrowerId);

        return(DocumentUI.GetDocument(companyId, filter.DocumentId));
    }
Esempio n. 4
0
        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())
Esempio n. 5
0
    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));
    }
Esempio n. 6
0
        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());
        }
Esempio n. 7
0
        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));
        }
Esempio n. 8
0
    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));
    }
Esempio n. 9
0
 public IEnumerable <DocumentUI> GetDocumentsByCompanyUI([FromUri] DocumentsFilter filter)
 {
     return(this.GetDocumentsByCompany(filter));
 }