| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using SecureSharing.Business.Interfaces;
- using SecureSharing.Models;
-
- namespace SecureSharing.Infrastructure;
-
- public sealed class ModelFactory : IModelFactory
- {
- private readonly IMessageService _messageService;
-
- public ModelFactory(IMessageService messageService)
- {
- _messageService = messageService;
- }
-
- public async Task<LinkModel> PrepareLinkVM(int id, bool? share)
- {
- //share is true when the link is created
-
- LinkModel model = null;
- try
- {
- var message = await _messageService.GetById(id);
-
- model = new LinkModel { MessageModel = new MessageModel { Id = id, Text = message.Text }, Share = share };
- model.IsValid = message.IsValid;
-
- if (model.IsValid)
- {
- if (message.ExpiryDate != null)
- {
- model.TimeLeft = message.ExpiryDate - DateTime.UtcNow;
- if (message.ExpiryDate <= DateTime.UtcNow)
- {
- await _messageService.InvalidateMessage(message.Id);
- model.IsValid = false;
- }
- }
- else
- {
- //ONE_TIME sharing: make the message invalid now so that it can't be accessed next time
- if (share == null || share.Value == false) await _messageService.InvalidateMessage(message.Id);
- }
- }
- }
- catch (Exception _)
- {
- model = new LinkModel { IsValid = false };
- }
-
- return model;
- }
-
- //public MessageModel PrepareMessageVM(MessageDto message)
- //{
- // throw new System.NotImplementedException();
- //}
- }
|