private static async Task CreateAndSaveNewMessage(object Sender, DateTime?customTime = null,
                                                          int triggerAfterNSec = 0)
        {
            //When creating a message
            MessageSQLiteModel messageSqLiteModel = new MessageSQLiteModel()
            {
                IsRead      = false,
                MessageLink = DEFAULT_MESSAGE_LINK,
                TimeStamp   = customTime ?? SystemTime.Now(),
                Title       = DEFAULT_MESSAGE_TITLE
            };


            if (!HasCreatedMessageAndNotificationToday())
            {
                await _manager.SaveNewMessage(messageSqLiteModel);

                MessagingCenter.Send <object>(Sender, MessagingCenterKeys.KEY_MESSAGE_RECEIVED);
                NotificationsHelper.CreateNotification(NotificationsEnum.NewMessageReceived, triggerAfterNSec);

                SaveDateTimeToSecureStorageForKey(
                    SecureStorageKeys.LAST_HIGH_RISK_ALERT_UTC_KEY,
                    customTime ?? SystemTime.Now(),
                    nameof(CreateAndSaveNewMessage));

                SaveDateTimeToSecureStorageForKey(
                    SecureStorageKeys.LAST_SENT_NOTIFICATION_UTC_KEY,
                    customTime ?? SystemTime.Now(),
                    nameof(CreateAndSaveNewMessage));
            }
        }
            public void CreateTestMessages()
            {
                MessageSQLiteModel messageSqLiteModel = new MessageSQLiteModel()
                {
                    IsRead      = false,
                    MessageLink = "https://www.netcompany.com",
                    TimeStamp   = SystemTime.Now().Subtract(TimeSpan.FromDays(20)),
                    Title       = "Du har opholdt dig på tæt afstand af en COVID - 19 positiv"
                };

                MessageSQLiteModel messageSqLiteModel2 = new MessageSQLiteModel()
                {
                    IsRead      = false,
                    MessageLink = "https://www.netcompany.com",
                    TimeStamp   = SystemTime.Now().Subtract(TimeSpan.FromDays(15)),
                    Title       = "Du har opholdt dig på tæt afstand af en COVID - 19 positiv"
                };

                MessageSQLiteModel messageSqLiteModel3 = new MessageSQLiteModel()
                {
                    IsRead      = false,
                    MessageLink = "https://www.netcompany.com",
                    TimeStamp   = SystemTime.Now(),
                    Title       = "Du har opholdt dig på tæt afstand af en COVID - 19 positiv"
                };

                ServiceLocator.Current.GetInstance <IMessagesManager>().SaveNewMessage(messageSqLiteModel);
                ServiceLocator.Current.GetInstance <IMessagesManager>().SaveNewMessage(messageSqLiteModel2);
                ServiceLocator.Current.GetInstance <IMessagesManager>().SaveNewMessage(messageSqLiteModel3);
            }
Example #3
0
        public async Task <int> SaveNewMessage(MessageSQLiteModel message)
        {
            await _syncLock.WaitAsync();

            try
            {
                return(await _database.InsertAsync(message));
            }
            finally
            {
                _syncLock.Release();
            }
        }
Example #4
0
        public async Task MarkAsRead(MessageSQLiteModel message, bool isRead)
        {
            await _syncLock.WaitAsync();

            try
            {
                message.IsRead = isRead;
                await _database.UpdateAsync(message);
            }
            finally
            {
                _syncLock.Release();
            }
        }
 public static async Task <int> SaveMessages(MessageSQLiteModel message)
 {
     return(await _manager.SaveNewMessage(message));
 }