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); } }
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(); }