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

ModelFactory.cs 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using SecureSharing.Business.Interfaces;
  2. using SecureSharing.Data.Data;
  3. using SecureSharing.Models;
  4. namespace SecureSharing.Infrastructure;
  5. public sealed class ModelFactory : IModelFactory
  6. {
  7. private readonly IMessageService _messageService;
  8. public ModelFactory(IMessageService messageService)
  9. {
  10. _messageService = messageService;
  11. }
  12. public async Task<LinkModel> PrepareLinkVM(Guid code, bool? share)
  13. {
  14. //share is true when the link is created
  15. LinkModel model = null;
  16. try
  17. {
  18. var message = await _messageService.GetByCode(code);
  19. model = new LinkModel
  20. {
  21. MessageModel = new MessageModel
  22. {
  23. Code = code,
  24. Text = message.Text,
  25. FileNames = message.FileNames.Select(x => x.Name).ToList()
  26. },
  27. Share = share,
  28. IsValid = message.IsValid
  29. };
  30. if (model.IsValid)
  31. {
  32. if (message.ExpiryDate != null)
  33. {
  34. model.TimeLeft = message.ExpiryDate - DateTime.UtcNow;
  35. if (message.ExpiryDate <= DateTime.UtcNow)
  36. {
  37. await _messageService.InvalidateMessage(message.Id);
  38. model.IsValid = false;
  39. }
  40. }
  41. else
  42. {
  43. //ONE_TIME sharing: make the message invalid now so that it can't be accessed next time
  44. if (share is null or false) await _messageService.InvalidateMessage(message.Id);
  45. }
  46. }
  47. else
  48. {
  49. await _messageService.Delete(message.Id);
  50. }
  51. }
  52. catch (Exception _)
  53. {
  54. model = new LinkModel { IsValid = false };
  55. }
  56. return model;
  57. }
  58. //public MessageModel PrepareMessageVM(MessageDto message)
  59. //{
  60. // throw new System.NotImplementedException();
  61. //}
  62. }