예제 #1
0
        public void SendMessage(List <Recipient> recipients, Message message)
        {
            if (recipients == null || recipients.Count == 0)
            {
                return;
            }

            foreach (var recipient in recipients)
            {
                try {
                    userMessageRepository.Create(
                        new Core.Models.Messaging.EF.UserMessage()
                    {
                        Body             = message.MessageBody,
                        CustomerNumber   = message.CustomerNumber,
                        Subject          = message.MessageSubject,
                        NotificationType = message.NotificationType,
                        CustomerName     = message.CustomerName,
                        BranchId         = message.BranchId,
                        UserId           = recipient.UserId,
                        Label            = message.NotificationType.ToString() // TODO: add a label for the message?
                    });
                    unitOfWork.SaveChanges();
                } catch (Exception ex) {
                    eventLogRepository.WriteErrorLog("WebMessageProvider: Error Sending Message", ex);
                }
            }
        }
예제 #2
0
        public void favourite_must_be_enabled_after_toggle()
        {
            var message     = DatabaseHelper.CreateValidMessage(DatabaseHelper.UserTest4);
            var userMessage = DatabaseHelper.CreateValidUserMessage(message, DatabaseHelper.UserTest4);

            _messageRepository.Create(message);
            _userMessageRepository.Create(userMessage);
            _unitOfWork.Commit();

            _messageFavouriteService.ToggleFavourite(userMessage.User.Id, userMessage.Message);
            _unitOfWork.Commit();

            var favourite = _favouriteUserMessageRepository.FindAll().FirstOrDefault(x => x.User.Id == DatabaseHelper.UserTest4.Id && x.Message.Id == message.Id);

            Assert.IsNotNull(favourite, "User favourite message must exists after toggle favorite (enable)");
        }
예제 #3
0
        public void after_deleted_message_all_connected_user_message_must_have_deleted_state()
        {
            var newMessage   = DatabaseHelper.CreateValidMessage(DatabaseHelper.UserTest2A);
            var userMessage1 = DatabaseHelper.CreateValidUserMessage(newMessage, DatabaseHelper.UserTest2A, modeEnum: UserMessageCreationModeEnum.ByHimselfNew);
            var userMessage2 = DatabaseHelper.CreateValidUserMessage(newMessage, DatabaseHelper.UserTest1);

            _messageRepository.Create(newMessage);
            _userMessageRepository.Create(userMessage1);
            _userMessageRepository.Create(userMessage2);
            _unitOfWork.Commit();

            _messageService.Delete(newMessage.Id);
            _unitOfWork.Commit();

            int amountOfDeleted = _userMessageRepository.FindAll().Count(x => x.Message.Id == newMessage.Id && x.UserMessageState.UserMessageStateEnum == UserMessageStateEnum.Deleted);

            Assert.AreEqual(2, amountOfDeleted, "All user message must have delete state after deleted message");
        }
예제 #4
0
        public void CreateMailMessage(MailMessageModel mailMessage)
        {
            Dictionary <Guid, UserMessage> messages = new Dictionary <Guid, UserMessage>();

            IfCustomersRelayMessageToEachCustomer(mailMessage, messages);

            IfUsersRelayMessageToEachUser(mailMessage, messages);

            //Add messages to all users in the case of system alert
            if (mailMessage.IsAlert)
            {
                ExtractLinkIfPresent(mailMessage);

                RelayAlert(mailMessage, messages);
            }

            //Create all of the message records
            foreach (var message in messages)
            {
                _userMessageRepository.Create(message.Value);
            }

            _uow.SaveChanges();
        }
        public void user_must_have_right_to_his_own_user_messages()
        {
            var message      = DatabaseHelper.CreateValidMessage(DatabaseHelper.UserTest1);
            var userMessage1 = DatabaseHelper.CreateValidUserMessage(message, DatabaseHelper.UserTest1);

            _userMessageRepository.Create(userMessage1);
            _unitOfWork.Commit();

            bool userHaveRight = _userMessageService.HasRightToUserMessage(DatabaseHelper.UserTest1.Id, userMessage1.Id);

            _unitOfWork.Commit();

            Assert.IsTrue(userHaveRight, "User must have rights to his own user message");
        }