private List <FeedbackMessage> GetOrNewFeedbackMessages(FeedbackMessage.FeedbackMessageLevel level)
        {
            if (!messagesHolder.ContainsKey(level))
            {
                lock (createLock)
                {
                    if (!messagesHolder.ContainsKey(level))
                    {
                        var messageList = new List <FeedbackMessage>();
                        messagesHolder[level] = messageList;
                        return(messageList);
                    }
                }
            }

            return(messagesHolder[level]);
        }
 /// <summary>
 /// Clear messages.
 /// </summary>
 /// <param name="level"></param>
 public void Clear(FeedbackMessage.FeedbackMessageLevel level)
 {
     GetOrNewFeedbackMessages(level).Clear();
 }
        /// <summary>
        /// Gets feedback messages as readonly.
        /// </summary>
        /// <param name="level"></param>
        /// <returns></returns>
        public IList <FeedbackMessage> GetFeedbackMessages(FeedbackMessage.FeedbackMessageLevel level)
        {
            var messages = GetOrNewFeedbackMessages(level);

            return(messages.AsReadOnly());
        }