Exemple #1
0
 public async Task RequestSortedList(MessageSortType type)
 {
     await Clients.Caller.SendThreads(_messageService.GetLatest("Alle berichten", 10, type));
 }
        public List <ThreadView> GetLatest(string tag, int amount, MessageSortType sort = MessageSortType.New)
        {
            bool all = tag.ToLower() == "alle berichten";

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

            if (tag.ToLower() == "alle berichten")
            {
                messages = _unitOfWork.Message.GetLatest(amount);
            }
            else
            {
                messages = _unitOfWork.Message.GetLatestWithTag(tag, amount);
            }

            switch (sort)
            {
            case MessageSortType.Top:
                if (all)
                {
                    return(GetTop(10));
                }
                else
                {
                    messages = _unitOfWork.Message.GetTopWithTag(tag, amount);
                }
                break;

            case MessageSortType.Old:
                if (all)
                {
                    return(GetOldest(10));
                }
                else
                {
                    messages = _unitOfWork.Message.GetOldestWithTag(tag, amount);
                }
                break;

            case MessageSortType.New:
                if (all)
                {
                    messages = _unitOfWork.Message.GetLatest(amount);
                }
                else
                {
                    messages = _unitOfWork.Message.GetLatestWithTag(tag, amount);
                }
                break;
            }


            List <ThreadView> replies = new List <ThreadView>();

            foreach (Message msg in messages)
            {
                replies.Add(msg.GetThreadView());
            }

            return(replies);
        }