// De-serialises SMS from json file, splitting file based on
        // de-limiter to seperate objects
        public bool FromJsonSMS()
        {
            try
            {
                JsonSerializer serializer = new JsonSerializer();             // Initialise serialiser
                using (FileStream s = File.Open(_smsFilePath, FileMode.Open)) // Open Filestream
                    using (StreamReader sr = new StreamReader(s))
                        using (JsonReader reader = new JsonTextReader(sr))
                        {
                            while (reader.Read())
                            {
                                // deserialize only when there's "{" character in the stream
                                if (reader.TokenType == JsonToken.StartObject)
                                {
                                    var o = serializer.Deserialize <Sms>(reader);

                                    SmsMessages.Add(o);
                                }
                            }
                        }

                return(true);
            }
            catch (Exception ex)
            {
                ErrorCode = ex.ToString(); // Display error code
                return(false);
            }
        }
        public void TestCanGettingMessageById()
        {
            var request           = new GetMessagesByIdCommand(2);
            var cancellationToken = CancellationToken.None;

            var message =
                new SmsMessages
            {
                DateSent       = DateTime.Now,
                DateAdded      = DateTime.Now,
                MessageContent = "Test Message",
                PhoneNumber    = "0749638765",
                Result         = 1,
                ResponseDate   = DateTime.UtcNow,
                SmsMessagesId  = 2
            };

            _unitOfWork.Setup(x => x.SmsMessages.GetById(2)).Returns(Task.FromResult(message));

            var result = _instance.Handle(request, cancellationToken);

            Assert.Equal("0749638765", result.Result.SmsMessage.PhoneNumber);
            Assert.Equal("Test Message", result.Result.SmsMessage.MessageContent);
            Assert.Equal(2, result.Result.SmsMessage.SmsMessagesId);
            Assert.Equal(1, result.Result.SmsMessage.Result);
        }
Beispiel #3
0
 private async void AddMessage(SMSReceivedMessage message)
 {
     //receiving a message from prospect whose messages are currently being viewed
     if (message.SMSActivityReceived.ProspectAddressBook == SmsActivity.ProspectAddressBook)
     {
         //_showAlertInteraction.Raise();
         SmsMessages.Add(message.SMSActivityReceived);
         _hideAlertInteraction.Raise();
         var success = await _prospectService.UpdateProspectSMSActivityAsync(SmsActivity.ProspectAddressBook);
     }
 }
        public void TestSendingMessageSuccessfully()
        {
            var msg = new SmsMessages
            {
                DateSent       = DateTime.Now,
                DateAdded      = DateTime.Now,
                MessageContent = "TestMessage",
                PhoneNumber    = "07496765345",
                Result         = 1,
                ResponseDate   = DateTime.UtcNow
            };

            _unitOfWork.Setup(x => x.SmsMessages.Add(msg)).Returns(Task.FromResult(msg));

            _sendSmsMessage.Setup(x => x.Send(It.IsAny <Sms>())).Returns(true);

            var result = _instance.Handle(_request, _cancellationToken);

            Assert.True(result.Result.SentToQueue);
        }
Beispiel #5
0
        public async Task <SendMessageResponseModel> Handle(SendMessageCommand request,
                                                            CancellationToken cancellationToken)
        {
            bool result = false;
            var  msg    = new SmsMessages
            {
                DateSent       = DateTime.Now,
                DateAdded      = DateTime.Now,
                MessageContent = request.MessageContent,
                PhoneNumber    = request.ContactNumber,
                Result         = 1,
                ResponseDate   = DateTime.UtcNow
            };

            try
            {
                await _unitOfWork.SmsMessages.Add(msg);

                _unitOfWork.Complete();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(new SendMessageResponseModel
                {
                    SentToQueue = false,
                    MessageId = -1
                });
            }

            result = _sendSmsMessage.Send(new Sms {
                Message = request.MessageContent, PhoneNumber = request.ContactNumber, MessageId = msg.SmsMessagesId
            });

            return(new SendMessageResponseModel
            {
                SentToQueue = result,
                MessageId = msg.SmsMessagesId
            });
        }
        /// <summary>
        /// Handles each tick of the poll timer
        /// </summary>
        /// <param name="sender">The timer that fired this event</param>
        /// <param name="e">The event arguments</param>
        private void UpdateTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            int messageCount = CountSMSMessages();

            if (messageCount > 0)
            {
                //UpdateTimer.Stop();

                ShortMessageCollection messages = ReadSMS(Port, "AT+CMGL=\"ALL\"");
                foreach (ShortMessage message in messages)
                {
                    SmsMessages.Enqueue(message);
                }

                if (DeleteSMS(Port, "AT+CMGD=1,4"))
                {
                    // success on deletion!
                }
                else
                {
                    // failed to delete, which is bad, uh-oh...
                    throw new InvalidOperationException("Can't proceed - old SMS messages cannot be deleted.");
                }

                do
                {
                    if (SmsMessages.Count > 0)
                    {
                        ShortMessage message = SmsMessages.Dequeue();
                        ExecuteMessageContent(message);
                    }
                } while (SmsMessages.Count != 0);

                //UpdateTimer.Start();
            }
        }