Пример #1
0
        void addMessage(Message msg)
        {
            var            date = msg.SubmittedDate.Date;
            GroupedMessage targetMessageGroup = null;

            targetMessageGroup = GroupedMessages.Where(x => x.DateTime == date).FirstOrDefault();
            if (targetMessageGroup == null)
            {
                targetMessageGroup = new GroupedMessage()
                {
                    DateTime = date
                };
                if (GroupedMessages.Count == 0)
                {
                    GroupedMessages.Add(targetMessageGroup);
                }
                else
                {
                    for (int i = GroupedMessages.Count - 1; i >= 0; i--)
                    {
                        if (date > GroupedMessages[i].DateTime)
                        {
                            GroupedMessages.Insert(i + 1, targetMessageGroup);
                            break;
                        }
                        if (i == 0)//Last
                        {
                            GroupedMessages.Insert(i, targetMessageGroup);
                        }
                    }
                }
            }
            targetMessageGroup.Add(msg);
            targetMessageGroup = new GroupedMessage(targetMessageGroup.OrderBy(x => x.SubmittedDate).ToList());
        }
Пример #2
0
        async Task <List <Message> > RefreshData()
        {
            await Task.Delay(1500);

            //Each time get n old messages..

            List <Message> oldMessages = new List <Message>();

            if (refreshCount < 3)
            {
                for (int i = 0; i < LOAD_MESSAGE_COUNT; i++)
                {
                    oldMessages.Add(GenRandomMessage());
                }

                var oldestDateTime = GroupedMessages.Where(x => x.DateTime == GroupedMessages.Min(y => y.DateTime)).First().Min(x => x.SubmittedDate);

                var index = 1;
                foreach (var msg in oldMessages)
                {
                    msg.SubmittedDate = oldestDateTime.AddDays(index * -1).AddHours(index * -1);
                    index++;
                }
                oldMessages = new List <Message>(oldMessages.OrderByDescending(x => x.SubmittedDate.ToBinary()));
            }
            refreshCount++;
            return(oldMessages);
        }