InvoiceCSVPoster.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using Comal.Classes;
  2. using InABox.Core;
  3. using InABox.Poster.CSV;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Text;
  7. namespace PRS.Shared
  8. {
  9. class InvoiceExportMap
  10. {
  11. public int Number { get; set; }
  12. public double Paid { get; set; }
  13. public double Balance { get; set; }
  14. public string Description { get; set; }
  15. public Guid ID { get; set; }
  16. }
  17. public class InvoiceCSVPoster : ICSVPoster<Invoice>
  18. {
  19. public ICSVExport Process(IEnumerable<Invoice> entities)
  20. {
  21. var export = new CSVExport<InvoiceExportMap>();
  22. export.DefineMapping(new()
  23. {
  24. new("Number", x => x.Number),
  25. new("Description", x => x.Description),
  26. new("Paid", x => x.Paid),
  27. new("Balance", x => x.Balance),
  28. new("ID", x => x.ID)
  29. });
  30. foreach(var entity in entities)
  31. {
  32. export.Add(new InvoiceExportMap
  33. {
  34. Number = entity.Number,
  35. Paid = entity.AmountPaid,
  36. Balance = entity.Balance,
  37. ID = entity.ID,
  38. Description = entity.Description
  39. });
  40. }
  41. return export;
  42. }
  43. }
  44. }