Example #1
0
        public List <MessageDTO> AndroidGetChatMessages(string authKey, int days)
        {
            try {
                using (var uow = UnitOfWorkFactory.CreateWithoutRoot($"[CS]Получение сообщений чата"))
                {
                    var driver = EmployeeRepository.GetDriverByAuthKey(uow, authKey);
                    if (driver == null)
                    {
                        return(null);
                    }

                    var chat = ChatRepository.GetChatForDriver(uow, driver);
                    if (chat == null)
                    {
                        return(null);
                    }
                    var messages     = new List <MessageDTO>();
                    var chatMessages = ChatMessageRepository.GetChatMessagesForPeriod(uow, chat, days);
                    foreach (var m in chatMessages)
                    {
                        messages.Add(new MessageDTO(m, driver));
                    }
                    return(messages);
                }
            } catch (Exception e) {
                logger.Error(e);
                return(null);
            }
        }
Example #2
0
        private void updateChat()
        {
            var messages = ChatMessageRepository.GetChatMessagesForPeriod(chatUoW, chatUoW.Root, showMessagePeriod);

            TextBuffer tempBuffer = new TextBuffer(textTags);
            TextIter   iter       = tempBuffer.EndIter;
            DateTime   maxDate    = default(DateTime);

            foreach (var message in messages)
            {
                if (message.DateTime.Date != maxDate.Date)
                {
                    tempBuffer.InsertWithTagsByName(
                        ref iter,
                        String.Format("\n{0:D}", message.DateTime.Date),
                        "date");
                }
                var userName = message.IsServerNotification ? ChatService.UserNameOfServer : message.SenderName;
                tempBuffer.InsertWithTagsByName(
                    ref iter,
                    string.Format("\n({0:t}) {1}: ", message.DateTime, userName),
                    getUserTag(userName));
                tempBuffer.Insert(ref iter, message.Message);
                if (message.DateTime > maxDate)
                {
                    maxDate = message.DateTime;
                }
            }
            textViewChat.Buffer = tempBuffer;
            updateTitle();
            //ChatCallbackObservable.GetInstance().NotifyChatUpdate(chatUoW.Root.Id, this);
            scrollToEnd();
        }