Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

FileEntityService.cs 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using Azure.Core;
  2. using Diligent.WebAPI.Contracts.DTOs.File;
  3. using Diligent.WebAPI.Contracts.DTOs.Files;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace Diligent.WebAPI.Business.Services
  10. {
  11. public class FileEntityService : IFileEntityService
  12. {
  13. private readonly ILogger<FileEntityService> _logger;
  14. private readonly DatabaseContext _context;
  15. private readonly IMapper _mapper;
  16. public FileEntityService(DatabaseContext context, ILogger<FileEntityService> logger, IMapper mapper)
  17. {
  18. _context = context;
  19. _logger = logger;
  20. _mapper = mapper;
  21. }
  22. public async Task<List<FileEntityResponse>> GetAllAsync() =>
  23. _mapper.Map<List<FileEntityResponse>>(await _context.Files.Include(x => x.Tags).ToListAsync());
  24. public async Task UploadPdfAsync(FileEntity file)
  25. {
  26. await _context.Files.AddAsync(file);
  27. await _context.SaveChangesAsync();
  28. }
  29. public async Task<IEnumerable<FileEntity>> GetAll()
  30. {
  31. return await _context.Files.ToListAsync();
  32. }
  33. public async Task<object> GetAllFiltered(FileFilter filters)
  34. {
  35. var filtered = await _context.Files
  36. .Include(n => n.Tags)
  37. .Include(n => n.Category)
  38. .FilterFiles(filters)
  39. .ToListAsync();
  40. return new
  41. {
  42. Data = filtered.ApplyPagging(filters)
  43. .Select(n => new { n.Id, n.Name, n.Size, n.Extension}),
  44. Total = filtered.Count
  45. };
  46. }
  47. }
  48. }