Exemplo n.º 1
0
        IReadOnlyDictionary <string, Invocations.Invocation> GetInvocations()
        {
            return(Cache.GetOrCreate(
                       "Builds.tsv",
                       newEntry =>
            {
                var buildXLInvocations = new Invocations();
                newEntry.ExpirationTokens.Add(m_fileProvider.Watch(buildXLInvocations.GetBuildTsvFilePath()));
                newEntry.SetSlidingExpiration(TimeSpan.FromMinutes(5));

                var invocations = buildXLInvocations.GetInvocations(m_loggingContext);
                var dictionary = new Dictionary <string, Invocations.Invocation>(invocations.Count, StringComparer.OrdinalIgnoreCase);
                foreach (var invocation in invocations)
                {
                    dictionary.Add(invocation.SessionId, invocation);
                }

                return dictionary;
            }));
        }