/// <summary>
 /// Gets the by request id.
 /// </summary>
 /// <param name="requestId">The request id.</param>
 /// <returns>
 /// Instance of the request that matches the request id.
 /// </returns>
 public GlimpseRequest GetByRequestId(Guid requestId)
 {
     lock (queueLock)
     {
         return(GlimpseRequests.FirstOrDefault(r => r.RequestId == requestId));
     }
 }
        /// <summary>
        /// Gets the by request id and tab key.
        /// </summary>
        /// <param name="requestId">The request id.</param>
        /// <param name="tabKey">The tab key.</param>
        /// <returns>
        /// Instance of the tab data that matches the request id and tab key.
        /// </returns>
        /// <exception cref="System.ArgumentException">Throws an exception if <paramref name="tabKey"/> is <c>null</c>.</exception>
        public TabResult GetByRequestIdAndTabKey(Guid requestId, string tabKey)
        {
            if (string.IsNullOrEmpty(tabKey))
            {
                throw new ArgumentException("tabKey");
            }

            var request = GlimpseRequests.FirstOrDefault(r => r.RequestId == requestId);

            if (request == null || !request.TabData.ContainsKey(tabKey))
            {
                return(null);
            }

            return(request.TabData[tabKey]);
        }