public HistoryWindow(Interlocutor interlocutor, IModelContext context)
        {
            InitializeComponent();
            _context = context;
            this.DataContext = this;
            Interlocutor = interlocutor;
            var history = new MessageRepository().LoadHistory(interlocutor) ?? new History
            {
                InterlocutorId = interlocutor.Id,
                Messages = new List<Message>()
            };
            HistoryView = new ObservableCollection<HistoryView>();

            HistoryMessages = new RichTextBox(new FlowDocument());
            HistoryMessages.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
            HistoryMessages.IsReadOnly = true;

            var monthGroups = history.Messages
                .OrderByDescending(note => note.Date)
                .GroupBy(key => key.Date.ToString("MMMM yyyy"));
            foreach (var monthGroup in monthGroups)
            {
                HistoryView.Add(new HistoryView
                {
                    Month = monthGroup.Key,
                    ActiveDates = new ObservableCollection<DayMessageView>(
                        monthGroup.GroupBy(key => key.Date.ToShortDateString())
                        .Select(dayGroup => new DayMessageView
                        {
                            Day = dayGroup.Key,
                            Messages = new ObservableCollection<Message>(dayGroup)
                        }))
                });
            }
        }
Example #2
0
 private void SaveHistory()
 {
     var messageRepository = new MessageRepository();
     messageRepository.SaveHistory(_context.Account);
 }