public override void OnNavigatedTo(NavigationParameters parameters)
 {
     //Lógica para automaticamente colocar a tela de chat na ultima msg recebida
     if (ListMessages.Count > 0)
     {
         var msg = ListMessages.Last <Message>();
         ListMessages.Remove(msg);
         ListMessages.Add(msg);
     }
 }
示例#2
0
 public void AddMessage(IMessage msg)
 {
     if (msg == null)
     {
         return;
     }
     ListMessages.Clear();
     ListMessages.Add(msg);
     OnMessageAdded?.Invoke(this, new MessageAddedEventArgs(msg));
 }
示例#3
0
        void AddLine(string line)
        {
            string[] items = line.Split(';');
            if (items.Length == 0)
            {
                return;
            }
            int  range           = items.Count(item => String.IsNullOrEmpty(item));
            bool isComment       = range == 0 && !char.IsDigit(items[0][0]);
            bool isSubMasterNode = range == 0 && !isComment;

            if (isSubMasterNode) // Start of a message
            {
                string timeStamp  = items[0];
                string message    = items.Length > 1 ? items[1] : "???";
                string masterName = null;
                int    imageId    = -1;
                bool   endFlag;
                int    masterRange = GetMasterRange(message, out imageId, out masterName, out endFlag);
                ListMessages.Add(currentMessageItem = new TreeMessageItem(timeStamp, message, GetImage(items.Length > 2 ? items[3] : "???", isComment), isComment));

                MessageCount++;

                if (masterRange >= 0) // It's a group start or end
                {
                    if (endFlag)
                    {
                        currentMasterMessageItem.Add(currentMessageItem);
                    }
                    Main.Add(currentMasterMessageItem = new TreeMasterMessageItem(treeView1, timeStamp, masterName, masterRange, imageId));
                }
                if (!endFlag)
                {
                    currentMasterMessageItem.Add(currentMessageItem);
                }
            }
            else
            if (isComment)     // Just a comment
            {
                currentMessageItem = new TreeMessageItem(null, line, GetImage(line, isComment), isComment);
                ListMessages.Add(currentMessageItem);
                if (currentMasterMessageItem == null)
                {
                    Main.Add(currentMasterMessageItem = new TreeMasterMessageItem(treeView1, "", "Start", 0, GetImage(line, isComment)));
                }
                currentMasterMessageItem.Add(currentMessageItem);
            }
            else     // A line within a message
            if (currentMessageItem != null)
            {
                currentMessageItem.Add(new TreeItemLine(range, items[range], (items.Length == range + 2) ? items[range + 1] : null));
            }
        }
示例#4
0
        public void AddLogMessage(string message, AccountEventArgs numbersArgs, MessageType messageType)
        {
            Message = new LoggerMessage
            {
                MessageType = messageType,
                Message     = message,
                Sender      = numbersArgs.SenderNumber,
                Receiver    = numbersArgs.ReceiverNumber,
                DateTime    = DateTime.Now
            };

            ListMessages.Add(Message);
        }
示例#5
0
        private void MessageAdd_MessageAdd(object sender, MessageTable e)
        {
            if (e.MsgType == type && type == 0)
            {
                ListMessages.Add(e);
            }
            else if (e.FromId == fromId)
            {
                ListMessages.Add(e);
            }

            MoveEnd();
        }
 public override void OnNavigatingTo(NavigationParameters parameters)
 {
     MessagingCenter.Unsubscribe <MensagemRespostaSocket>(this, "NovaMensagemChat");
     MessagingCenter.Subscribe <MensagemRespostaSocket>(this, "NovaMensagemChat", (sender) =>
     {
         var resposta = sender.msg.Split(new string[] { "=>" }, StringSplitOptions.None);
         var message  = new Message
         {
             Text            = resposta[0],
             IsTextIn        = true,
             MessageDateTime = DateTime.ParseExact(resposta[1], "dd/MM/yyyy hh:mm", System.Globalization.CultureInfo.InvariantCulture)
         };
         ListMessages.Add(message);
         GravarMensagem(message, ListMessages);
     });
 }
        public async void EnviarNovaMensagem()
        {
            if (!String.IsNullOrWhiteSpace(OutText))
            {
                var message = new Message
                {
                    Text            = OutText,
                    IsTextIn        = false,
                    MessageDateTime = DateTime.Now
                };

                GravarMensagem(message);
                ListMessages.Add(message);

                await ConectarSocket();

                await WebSocketClientClass.SendMessagAsync("MensagemChat=>" + OutText);

                OutText = "";
            }
        }
示例#8
0
        void SendMsg()
        {
            var message = new Mensagem
            {
                CHA_ID              = 1,
                CHA_CVS_TXT         = OutText,
                CHA_CVS_DTA_HOR_LOG = DateTime.Now,
                CHA_CVS_ID          = 1,
            };

            if (ListMessages.Count % 2 == 0)
            {
                message.CHA_CVS_OGM = "P";
            }
            else
            {
                message.CHA_CVS_OGM = "c";
            }

            ListMessages.Add(message);
            OutText = string.Empty;
        }