/// <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 top. /// </summary> /// <param name="count">The count.</param> /// <returns> /// Collection of requests that represent the top x number of requests. /// </returns> public IEnumerable <GlimpseRequest> GetTop(int count) { lock (queueLock) { return(GlimpseRequests.Take(count).ToList()); } }
/// <summary> /// Gets the by request parent id. /// </summary> /// <param name="parentRequestId">The parent request id.</param> /// <returns> /// Collection of requests that matches the parent request id. /// </returns> public IEnumerable <GlimpseRequest> GetByRequestParentId(Guid parentRequestId) { lock (queueLock) { return(GlimpseRequests.Where(r => r.ParentRequestId == parentRequestId).ToList()); } }
/// <summary> /// Saves the specified request. /// </summary> /// <param name="request">The request.</param> public void Save(GlimpseRequest request) { if (GlimpseRequests.Count >= BufferSize) { GlimpseRequests.Dequeue(); } GlimpseRequests.Enqueue(request); }
/// <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]); }